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).