Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Testowanie i jakość oprogramowania

L#05: SOLID.

Wprowadzenie

Zasady SOLID to pięć kluczowych reguł projektowania obiektowego. Dzięki nim kod jest bardziej elastyczny, czytelny i łatwiejszy w utrzymaniu. Stosowanie tych zasad znacznie zmniejsza ryzyko błędów przy rozbudowie aplikacji.

Cel

Głównym celem laboratorium jest nauka rozpoznawania wadliwego kodu, który łamie dobre praktyki. Dodatkowo zapoznamy się z praktycznym zastosowaniem refaktoryzacji zgodnie z zasadami SOLID.

Zasady SOLID

Poniżej przedstawiono opis poszczególnych zasad składających się na akronim SOLID:

  • Single Responsibility Principle (SRP) - Zasada jednej odpowiedzialności: Klasa powinna mieć tylko jedną odpowiedzialność, jeden powód do zmiany.
  • Open/Closed Principle (OCP) – Zasada otwarte/zamknięte: Klasy powinny być otwarte na rozszerzenia, ale zamknięte na modyfikacje.
  • Liskov Substitution Principle (LSP) – Zasada podstawienia Liskov: Obiekty klasy bazowej powinny być zastępowane obiektami klasy pochodnej bez wpływu na poprawność działania programu.
  • Interface Segregation Principle (ISP) – Zasada segregacji interfejsów: Klasy nie powinny zależeć od metod, których nie używają.
  • Dependency Inversion Principle (DIP) – Zasada odwrócenia zależności: Moduły wysokopoziomowe nie powinny zależeć od modułów niskopoziomowych. Oba powinny zależeć od abstrakcji.

Refaktoryzacja

Pobierz wszystkie skrypty i postaraj się je poprawić tak, aby nie naruszały zasad SOLID.

  • Naruszona zasada ⬇️ SRP (zamówienia).
    Czy nasza klasa nie ma zbyt wielu odpowiedzialności? Jak to sprytnie rozdzielić?
  • Naruszona zasada ⬇️ OCP (figury geometryczne).
    Co się stanie, gdy dodamy nową figurę? Czy zostaniesz zmuszony(a) do modyfikacji już działającego kodu?
  • Naruszona zasada ⬇️ LSP (konta bankowe).
    Czy dziedziczenie to na pewno dobry pomysł? Jak zadbać o odpowiedni kontrakt?
  • Naruszona zasada ⬇️ ISP (pracownicy).
    Dlaczego zmuszamy obiekty do wdrażania metod, których nigdy nie użyją? Jak rozbić ten pękaty interfejs?
  • Naruszona zasada ⬇️ DIP (urządzenia).
    Czy zwykły włącznik światła musi być połączony na sztywno z konkretną żarówką? A co jak zechcesz podpiąć do niego wentylator?

Podsumowanie

Zrozumienie i umiejętne stosowanie zasad SOLID to klucz do bycia profesjonalnym inżynierem oprogramowania. Kod oparty na dobrych praktykach ułatwia pracę nie tylko twórcy, ale całemu zespołowi. Regularna praktyka poprzez analizę i poprawę architektury prowadzi do pisania czystego, niezawodnego kodu (clean code).