Lyrics
[Verse]
Single Responsibility Principle na start.
Jedna klasa, jedna odpowiedzialność.
Jeśli klasa przechowuje dane, to nie przetwarzaj w niej ich.
Utwórz serwis który tylko tym się zajmie.
Jeśli robisz serwis, to nie nie twórz molocha do wszystkiego.
Już dziadowie wiedzieli:
"co jest do wszystkiego to jest do niczego".
Lepiej zrób kilka serwisów i jeden sprzęgający je razem.
[Chorus]
By solidnym być nie zapominaj o Solidzie.
Bez niego nie zapomnisz już o wstydzie.
Porządek, czytelność, łatwość rozwijania.
To ci da Solid bez gadania.
[Verse2]
Open Close Principle wchodzi na scene.
Tu już nie o klasy, lecz o projekt się rozchodzi.
Twórz go jak wierzowiec, piętro po piętrze.
Buduj kolejne, bez potrzeby zmian w poprzednich.
Twórz metody uniwersalne.
Obsługuj interfejsy, a nie konkretne klasy.
Zwracaj obiekty nie konkretne pola.
Rozszerzaj, nie modyfikuj swego stwora.
[Chorus]
By solidnym być nie zapominaj o Solidzie.
Bez niego nie zapomnisz już o wstydzie.
Porządek, czytelność, łatwość rozwijania.
To ci da Solid bez gadania.
[Verse3]
Zasada Podstawienia Liskova się kłania.
Dziecko nie może zmieniać cech rodzica.
Może je rozszerzać, może też mieć nowe.
Ale nie może wyrzec się rodzica.
Jeśli rodzica masz Faktory,
co nowe Encje zlepia.
To nie możesz kolego
nagle zlepiać dżeka.
[Chorus]
By solidnym być nie zapominaj o Solidzie.
Bez niego nie zapomnisz już o wstydzie.
Porządek, czytelność, łatwość rozwijania.
To ci da Solid bez gadania.
[Verse4]
Interface Segregation Principle.
Interfejs to pomoc, a nie obciążenie.
Po co bokserowi ochraniacze na przyrodzenie.
Wystarczy ochrona na jego uzębienie.
Tak i Ty, nie wymuszaj interfejsem nadmiaru metod.
Bo narobisz sobie zbędny kłopot.
Lepiej zrobić ich więcej dla konkretnego celu.
I nie robić w kodzie burdelu.
[Chorus]
By solidnym być nie zapominaj o Solidzie.
Bez niego nie zapomnisz już o wstydzie.
Porządek, czytelność, łatwość rozwijania.
To ci da Solid bez gadania.
[Verse5]
Zasada Odwrócenia Zależności.
Lub Dependency Inversion Principle jak ktoś woli.
Jak generał, co wydaje rozkaz dowódcy jednostki.
Kimkolwiek to jest, w tym temacie jest beztroski.
Kapitan, półkownik, czy major do holery.
Dla niego to stanowisko, a nie konkretna osoba.
Tak klasy w Twym systemie, niech komunikują się podobnie.
Interfej i klasa abstrakcyjna rozwiąże ten problem.