término                    | 
                
                    definición                    | 
            
        
        | 
     empezar lección
 | 
 | 
      SOLID to skrót opisujący pięć zasad projektowania mające ułatwić zrozumienie projektu oprogramowania oraz uczynić projekt elastycznym i łatwym w utrzymaniu.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Single Responsibility Principle - Zasada pojedynczej odpowiedzialności. Klasa hermetyzowana i odpowiedzialna tylko za jedną część funkcjonalności oferowanej przez oprogramowanie   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Open/Closed Principle - Zasada otwarte/zamknięte. Klasy powinny być otwarte na rozszerzenie ale zamknięte dla modyfikacji. Zapobieganie popsucia istniejącego kodu gdy implementuje się nową funkcjonalność.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Liskov Substitution Principle - Zasada podstawienia Liskov. Rozszerzając klasę, trzeba pamiętać, aby było możliwe przekazywanie obiektów nowej podklasy w miejsce obiektów klasy bazowej bez psucia kodu klienta.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Interface Segregation Principle - Zasada segregacji interfejsów. Klientom nie powinno się narzucać zależności od nieużywanych metod. Interfejsy na tyle wąsko wyspecjalizowane, żeby klienci nie musieli implementować zachowań których nie potrzebują.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Dependency Inversion Principle - Zasada odwrócenia zależności. Wysokopoziomowe klasy nie powinny być zależne od niskopoziomowych. Obie grupy zależne od abstrakcji. Abstrakcje niezależne od szczegółów. Szczegóły zależne od abstrakcji.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Keep It Simple, Stupid. Reguła mówi o tym aby wytwarzać kod w możliwie najprostszy sposób. Zamiast stosować skomplikowanych struktur, powinniśmy zastosować o ile jest to możliwe prostsze zastosowanie.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      You aren’t gonna need it. Polega na tym żeby nie tworzyć kodu na zapas “bo może się przyda”.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Tell don't ask. Mówi o konkretnym podziale obowiązków pomiędzy klasami i obiektami a ich zadaniami. Powinniśmy mówić naszym obiektom jakie są ich obowiązki a nie pytać w jakim są stanie.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Separation of concerns.Np. MVC. Żadna klasa nie powinna dzielić odpowiedzialności z innymi klasami. Chodzi o to, aby klasa nie musiała martwić się o zadania klas pobocznych.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Don’t Repeat Yourself. Unikanie powtarzania kodu, co przekłada się na łatwiejsze zarządzanie kodem, zmniejszenie ryzyka popełnienia błędów oraz ułatwienie wprowadzania zmian w przyszłości.   
 | 
 | 
 | 
      Dlaczego warto pisać testy jednostkowe?    empezar lección
 | 
 | 
      Testy jednostkowe zapewniają poprawność kodu i ułatwiają szybkie wykrywanie oraz poprawianie błędów.   
 | 
 | 
 | 
| 
     empezar lección
 | 
 | 
      Git to system kontroli wersji, który umożliwia śledzenie historii zmian w kodzie oraz efektywną współpracę programistów.   
 | 
 | 
 | 
      Dlaczego ważne jest planowanie przed rozpoczęciem kodowania?    empezar lección
 | 
 | 
      Planowanie pozwala zrozumieć wymagania projektu i uniknąć niepotrzebnych zmian w późniejszych fazach rozwoju.   
 | 
 | 
 | 
      Co to znaczy, że kod jest czysty?    empezar lección
 | 
 | 
      Czysty kod jest czytelny, zrozumiały i składający się z dobrze zorganizowanych struktur, co ułatwia jego utrzymanie i rozwój.   
 | 
 | 
 | 
      Jak zarządzać czasem podczas programowania?    empezar lección
 | 
 | 
      Planowanie zadań, priorytetyzacja oraz regularne przerwy pomagają w efektywnym zarządzaniu czasem podczas tworzenia oprogramowania.   
 | 
 | 
 | 
      Jakie jest różnica między testami jednostkowymi a testami integracyjnymi?    empezar lección
 | 
 | 
      Testy jednostkowe sprawdzają pojedyncze komponenty kodu, podczas gdy testy integracyjne sprawdzają interakcje między różnymi częściami systemu.   
 | 
 | 
 | 
      Co oznacza pisanie skalowalnego kodu?    empezar lección
 | 
 | 
      Pisanie skalowalnego kodu oznacza projektowanie i implementację aplikacji tak, aby mogła ona łatwo rosnąć i obsługiwać większe obciążenie bez znaczących zmian w architekturze.   
 | 
 | 
 | 
      Co to jest ciągłe dostarczanie w kontekście programowania? (Continuous Delivery)    empezar lección
 | 
 | 
      Ciągłe dostarczanie to praktyka polegająca na częstym i regularnym wdrażaniu zmian do produkcji przy minimalnym ryzyku, co wymaga dobrze zaplanowanej i zautomatyzowanej infrastruktury.   
 | 
 | 
 | 
      Jakie są dobre praktyki zarządzania zależnościami w projekcie?    empezar lección
 | 
 | 
      Dobre praktyki obejmują regularne aktualizacje bibliotek, używanie narzędzi do zarządzania zależnościami (np. npm, composer), oraz śledzenie potencjalnych luk bezpieczeństwa w zależnościach.   
 | 
 | 
 | 
      Dlaczego ważne jest monitorowanie i analiza wydajności aplikacji?    empezar lección
 | 
 | 
      Monitorowanie wydajności pozwala na wczesne wykrywanie problemów, optymalizację aplikacji oraz zapewnienie płynności działania nawet przy dużym obciążeniu.   
 | 
 | 
 | 
      Co oznacza modularność kodu i dlaczego jest ważna?    empezar lección
 | 
 | 
      Modularność kodu oznacza podział aplikacji na mniejsze, niezależne części (moduły), co ułatwia zarządzanie, testowanie i ponowne wykorzystanie kodu.   
 | 
 | 
 | 
      Jakie są metody skalowania aplikacji?    empezar lección
 | 
 | 
      Metody obejmują skalowanie pionowe (zwiększanie mocy obliczeniowej pojedynczej maszyny) i skalowanie poziome (dodawanie więcej maszyn lub instancji aplikacji).   
 | 
 | 
 | 
      Co to jest metodyka Agile i jakie ma zalety?    empezar lección
 | 
 | 
      Metodologia Agile to podejście do zarządzania projektami, które polega na dzieleniu projektu na etapy i kładzie nacisk na ciągłą współpracę i doskonalenie. Zespoły działają zgodnie z cyklem planowania, realizacji i oceny.   
 | 
 | 
 | 
      Dlaczego utrzymywanie dokumentacji technicznej jest ważne?    empezar lección
 | 
 | 
      Dokumentacja techniczna ułatwia zrozumienie architektury, funkcji i działania aplikacji, wspomagając procesy utrzymania, rozwijania i debugowania kodu.   
 | 
 | 
 |