Modest Programmer logo
14 stycznia 2020
Każdy programista w swojej karierze ma różne etapy. Zazwyczaj początkujący programiści starają się pisać swoje aplikacji, w taki sposób, aby spełniały wszystkie wymagania, nie zważając na to, w jaki sposób piszą swój kod. Z czasem, gdy rozwijane są kolejne programy, zdobywamy doświadczenie, mamy do czynienia również z jakimś starym, zastanym kodem - przychodzą refleksję. Widzimy, że kod, który został wcześniej napisany, jest ciężki do utrzymywania. Każde kolejne w nim zmiany są coraz trudniejsze do wprowadzenia. Zastanawiamy się jak to zmienić, jak pisać lepszy, czystszy kod, tak żeby jeżeli do niego wrócimy po czasie, lub przejmie nasz kod inny programista, nie będzie on miał problemów ze zrozumiem go. Zdajemy sobie sprawę, że chcemy pisać lepszej jakości kod, w internecie są różne informacje na temat tego, jak poprawić jakość swojego kodu, jakich reguł się trzymać. Dużo osób radzi wtedy, aby zapoznać się z terminem SOLID, ale jakie korzyści przynosi i czym tak naprawdę jest SOLID?

Programowanie Zgodne z Regułami SOLID - Poradnik Dla Początkujących Programistów

Programowanie Zgodne z Regułami SOLID - Poradnik Dla Początkujących Programistów


SOLID jest to pięć reguł dotyczących programowania obiektowego. Zaproponował je amerykański programista Robert C. Martin (Uncle Bob) - uważany przez wielu jako autorytet w świecie programowania. Uncle Bob przede wszystkim słynie ze swojego podejścia do czystego kodu. Teoria zasad SOLID została wprowadzona przez Martina w jego artykule w roku 2000 - Design Principles And Design Patterns. Samo słowo SOLID oznacza coś solidnego, konstruktywnego, czy konkretnego, ale nie od tego wzięła się nazwa. Składają się na nie opisane wcześniej zasady, które pochodzą kolejno od każdej litery w słowie SOLID.


S jak Single Responsibility Principle (SRP)


Zasada Pojedynczej Odpowiedzialności - Każda klasa powinna mieć tylko jedną odpowiedzialność. Nigdy nie powinien istnieć więcej niż jeden powód do tego, aby ją w przyszłości zmienić.


O jak Open-Closed Principle (OCP)


Zasada Otwarte-Zamknięte - Element oprogramowania powinien być otwarty na rozbudowę, ale zamknięty na modyfikację. Jeżeli mamy jakąś metodę, która jest używana w innych częściach systemu, to nie powinna być już ona modyfikowana.


L jak Liskov Substitution Principle (LSP)


Zasada Podstawienia Liskov - Funkcje, które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów. W miejsce typu bazowego możesz podstawić dowolny typ klasy pochodnej i nie powinieneś utracić poprawnego działania.


I jak Interface Segregation Principle (ISP)


Zasada Segregacji Interfejsów - Żaden klient nie powinien być zmuszany do polegania na metodach, z których nie korzysta. Kilka dedykowanych interfejsów jest lepsze niż jeden, który jest zbyt ogólny.


D jak Dependency Inversion Principle (DIP)


Zasada Odwrócenia Zależności - Moduły wysokopoziomowe nie powinny zależeć od modułów niskopoziomowych. I pierwsze, i drugie powinny zależeć od abstrakcji (interfejsów, lub klas abstrakcyjnych). Abstrakcje nie powinny zależeć od szczegółów. To szczegóły powinny zależeć od abstrakcji.


Która z zasad SOLID jest najważniejsza?


Ostatnio otrzymałem pytanie od jednego z czytelników bloga o to, która z reguł SOLID jest moim zdaniem najważniejsza. Nie ma takiej, wszystkie zasady są równie ważne i co najważniejsze zasady te są ze sobą powiązane. Czyli na przykład, jeżeli nie stosujemy się do zasady podstawienia liskov, to również najczęściej naruszamy zasadę otwarte-zamknięte. Jeżeli nie stosujemy się do zasady segregacji interfejsów, to również prawdopodobnie naruszamy zasadę pojedynczej odpowiedzialności.

SOLID - Castle

PODSUMOWANIE


Większość programistów umie rozszyfrować skrót SOLID, ale nie każdy stosuje się do tych zasad. Szczególnie ciężko zrozumieć zasady SOLID początkującym programistom, ale nie ma się czemu dziwić, ponieważ zrozumienie ich wymaga czasu i praktyki. Warto wiedzieć czym są, przede wszystkim dlatego, że dzięki stosowaniu się do nich nasz kod będzie lepszej jakości, będzie go można łatwiej rozwijać i utrzymywać, nasze systemy będą testowalne. Dodatkowo o SOLID lubią pytać rekruterzy na rozmowach kwalifikacyjnych na stanowiska młodszych programistów. Jeżeli jesteś początkującym programistą i jeszcze nie do końca rozumiesz zasady przedstawiona przez Martina - napisz w komentarzu, chętnie rozwinę wtedy swoje artykuły. Musisz także pamiętać, że zrozumienie wszystkich zasad wymaga trochę praktyki. W kolejnych artykułach postaram się, przybliżyć Ci trochę tematykę testów jednostkowych w C#. Właśnie w pisaniu dobrych testów, potrzebne jest stosowanie się do zasad SOLID.

Poprzedni artykuł - SOLID - Dependency Inversion Principle (DIP) - Wszystko Co Powinieneś Wiedzieć o Zasadzie Odwrócenia Zależności.
Autor artykułu:
Kazimierz Szpin
Kazimierz Szpin
Programista C#/.NET. Głównie pisze aplikacje w ASP.NET MVC, WPF oraz Windows Forms.
Autor bloga ModestProgrammer.pl
Dodaj komentarz
© Copyright 2020 modestprogrammer.pl. Wszelkie prawa zastrzeżone. Polityka prywatności. Design by Kazimierz Szpin