question |
réponse |
commencer à apprendre
|
|
SOLID to skrót opisujący pięć zasad projektowania mające ułatwić zrozumienie projektu oprogramowania oraz uczynić projekt elastycznym i łatwym w utrzymaniu.
|
|
|
commencer à apprendre
|
|
Single Responsibility Principle - Zasada pojedynczej odpowiedzialności. Klasa hermetyzowana i odpowiedzialna tylko za jedną część funkcjonalności oferowanej przez oprogramowanie
|
|
|
commencer à apprendre
|
|
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ść.
|
|
|
commencer à apprendre
|
|
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.
|
|
|
commencer à apprendre
|
|
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ą.
|
|
|
commencer à apprendre
|
|
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.
|
|
|
commencer à apprendre
|
|
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.
|
|
|
commencer à apprendre
|
|
You aren’t gonna need it. Polega na tym żeby nie tworzyć kodu na zapas “bo może się przyda”.
|
|
|
commencer à apprendre
|
|
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.
|
|
|
commencer à apprendre
|
|
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.
|
|
|
commencer à apprendre
|
|
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? commencer à apprendre
|
|
Testy jednostkowe zapewniają poprawność kodu i ułatwiają szybkie wykrywanie oraz poprawianie błędów.
|
|
|
commencer à apprendre
|
|
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? commencer à apprendre
|
|
Planowanie pozwala zrozumieć wymagania projektu i uniknąć niepotrzebnych zmian w późniejszych fazach rozwoju.
|
|
|
Co to znaczy, że kod jest czysty? commencer à apprendre
|
|
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? commencer à apprendre
|
|
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? commencer à apprendre
|
|
Testy jednostkowe sprawdzają pojedyncze komponenty kodu, podczas gdy testy integracyjne sprawdzają interakcje między różnymi częściami systemu.
|
|
|
Co oznacza pisanie skalowalnego kodu? commencer à apprendre
|
|
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) commencer à apprendre
|
|
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? commencer à apprendre
|
|
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? commencer à apprendre
|
|
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? commencer à apprendre
|
|
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? commencer à apprendre
|
|
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? commencer à apprendre
|
|
Metodyka Agile to podejście do zarządzania projektem, które promuje adaptacyjność, elastyczność i regularne dostarczanie wartościowych produktów, zwiększając satysfakcję klienta i szybkość reakcji na zmiany.
|
|
|
Dlaczego utrzymywanie dokumentacji technicznej jest ważne? commencer à apprendre
|
|
Dokumentacja techniczna ułatwia zrozumienie architektury, funkcji i działania aplikacji, wspomagając procesy utrzymania, rozwijania i debugowania kodu.
|
|
|