Spis treści
SOLID
Zasady SOLID są podstawowymi dobrymi praktykami w programowaniu obiektowym. Warto jest nie tylko znać zasady SOLID, ale również je ćwiczyć. Przypomnijmy sobie jeszcze raz wszystkie zasady SOLID. Następnie przedstawię Ci sposoby, jak ćwiczyć zasady SOLID.
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.
Ćwiczenia zasady SOLID
- Programuj zwracając uwagę na zasady
- Czytaj zasady
- Czytaj kod innych osób w kontekście zasad
- Obserwuj, jak zmienia się Twoje oprogramowanie i czy zasady SOLID ułatwiłyby jego rozwój czy odwrotnie.
- Czytaj kod napisany w celu zaprezentowania zasad.
- Dawaj swój kod do review (sprawdzenia) innej osobie i poproś, aby wzięła pod uwagę zasady.
Odwiedź strony z ćwiczeniami zasad SOLID
- Polecam: https://www.ii.uni.wroc.pl/~wzychla/ra2H2I/oopz3.pdf
- Polecam: https://www.ii.uni.wroc.pl/~wzychla/ra2H2I/w3.pdf
- http://devman.pl/pl/techniki/zasady-solid-wstep/
- http://itcraftsman.pl/solidny-jak-solid-pisanie-solidnych-aplikacji-w-jezyku-c/
- https://www.seeitsharp.pl/2019/01/lsp-czyli-nie-zadzieraj-z-kobietami/
- https://www.ii.uni.wroc.pl/~wzychla/ra2H2I/oop.html
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
- Czysta architektura — Robert C. Martin
- 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