Spis treści
SOLID
SOLID jest podstawowym pojęciem w programowaniu obiektowym. Został przedstawiony przez Roberta C. Martina, który zebrał 5 zasad w skrót SOLID. Jest to akronim 5 zasad dobrego programowania obiektowego:
- Single responsibility principle – Zasada jednej odpowiedzialności.
- Open/closed principle – Zasada otwarte-zamknięte.
- Liskov substitution principle – Zasada podstawienia Liskov.
- Interface segregation principle – Zasada segregacji interfejsów.
- Dependency inversion principle – Zasada odwróconej zależności.
Single responsibility principle – Zasada jednej odpowiedzialności
Każda klasa powinna mieć tylko jedną odpowiedzialność (czyli tylko jeden powód do modyfikacji klasy) – jeden cel istnienia.
Open/closed principle – Zasada otwarte-zamknięte
Wszystkie klasy powinny być otwarte na rozszerzenia, ale zamknięte na modyfikacje.
Liskov substitution principle – Zasada podstawienia Liskov
Oprogramowanie powinno dobrze działać, gdy w miejsce klasy bazowej podstawimy jej którąkolwiek klasę potomną.
Interface segregation principle – Zasada segregacji interfejsów
Wiele dedykowanych i małych interfejsów jest lepsze niż jeden ogólny.
Dependency inversion principle – Zasada odwróconej zależności
Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych, lecz zależność powinna wynikać z abstrakcji.
Zalety
- Większa czytelność kodu.
- Wyższa jakość kodu.
- Tańsze utrzymywanie.
- Mniej błędów podczas rozwoju.
- Łatwiejsze testowanie.
- Łatwiejsze rozwijanie kodu.
- Brak klas-bogów.
Wady
- Większa pracochłonność podczas tworzenia kodu.
Podsumowanie
Stosuj zasady SOLID wszędzie tam, gdzie możesz. Są to najlepsze praktyki, jakie możesz wykorzystać. W wyjątkowych sytuacjach pozwalaj sobie na odejście od tych reguł, na rzecz szybszego napisania aplikacji. Postaraj się, łamiąc zasady SOLID, napisać i tak w miarę dobry kod.
Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:
- Początek mini projektu: Poznaj zasady SOLID i OOP
- SOLID
- S jak Single responsibility principle, czyli zasada jednej odpowiedzialności
- O jak Open-closed principle, czyli zasada otwarte/zamknięte
- L jak Liskov Substitution Principle, czyli zasada podstawień Barbary Liskov
- I jak Interface segregation principle, czyli Zasada segregacji interfejsów
- D jak Dependency Inversion Principle, czyli Zasada odwrócenia zależności
- CS jak Ćwiczenia Single responsibility principle, czyli zasada jednej odpowiedzialności
- CO jak Ćwiczenia Open/closed principle, czyli Zasada otwarte-zamknięte
- CL jak Ćwiczenia Liskov Substitution Principle, czyli zasada podstawień Barbary Liskov
- CI jak Ćwiczenia Interface segregation principle, czyli Zasady segregacji interfejsów
- CI jak Ćwiczenia Dependency Inversion Principle, czyli Zasada odwrócenia zależności
- Ćwiczenia z SOLID
- Podsumowanie połowy projektu: Poznaj zasady SOLID i OOP
- Ćwiczenia z SOLID — Kata
- OOP — Object Oriented Programming, czyli programowanie obiektowe
- OOP — Myślenie obiektowe
- OOP — Object Oriented Programming, czyli programowanie obiektowe — Modelowanie dziedziny
- KISS — Keep it simple, stupid, czyli Bez udziwnień zapisu, idioto (BUZI)
- Lod — Law of Demeter, czyli Prawo Demeter
- DRY — Don’t repeat yourself, czyli Nie powtarzaj się
- SLAP — Single Level of Abstraction Principle, czyli Pojedynczy poziom abstrakcji
- Composition Over Inheritance, czyli Kompozycja ponad dziedziczeniem
- Encapsulate what changes, czyli Ukrywaj zmieniające się rzeczy
- Podsumowanie projektu: Poznaj zasady SOLID i OOP
- Podsumowanie zasad SOLID i OOP
- Mini kurs: Poznaj zasady SOLID i OOP – Zapisz się!
- Praca cząstkowa w Metodzie Kanban
Źródła
Obraz główny
Materiały
- http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod
- https://en.wikipedia.org/wiki/SOLID
- https://pl.wikipedia.org/wiki/SOLID_(programowanie_obiektowe)
- https://www.samouczekprogramisty.pl/solid-czyli-dobre-praktyki-w-programowaniu-obiektowym/
- https://www.p-programowanie.pl/paradygmaty-programowania/zasady-solid/
- https://javadeveloper.pl/solid/
- https://sii.pl/blog/solid-dobre-praktyki-programowania/
- https://devcave.pl/notatnik-juniora/zasady-projektowania-kodu