PHP,  Projektowanie oprogramowania,  React.js

SOLID – solidne zasady projektowania oprogramowania

W świecie programistów wiele jest zasad, wzorców i wytycznych mających pomóc dobrze zaprojektować oprogramowanie. Jedną z takich zasad, choć właściwie jest to zbiór pięciu zasad, jest SOLID. Zostały one opisane szczegółowo przez Robert C. Martina w 2000 roku choć już w marcu 1995 roku na wspomniał o nich na grupie Google comp.object

Należy wspomnieć, że Zasada Pojedynczej Odpowiedzialności nie znalazła się w wydanym pierwotnie artykule.
Autorem akronimu SOLID jest Michael Feathers, który wymyślił go aby łatwiej było zapamiętać reguły.
Rozwińmy znaczenie tego akronimu:

Reguły te mają nam pomóc w radzeniu sobie ze złożonością oprogramowania i sprawić by stosunkowo łatwo było wprowadzać zmiany nawet w bardzo dużym i skomplikowanym kodzie. To nie są jedyne reguły ale można powiedzieć, że jest to zbiór reguł w pigułce.

SOLID – głosy krytyki

Przeglądając sieć natrafić można na głosy krytyczne, które zarzucają zasadom SOLID duże rozdrobnienie kodu. W wyniku ich bezrefleksyjnego stosowania powstaje sporo interfejsów i małych klas. Owszem, łatwo jest testować takie niewielkie klasy, są one mniej zależne jedne od drugich ale cały kod z upływem czasu staje się mało przejrzysty i zrozumiały, trudno w nim cokolwiek znaleźć. Dla przykładu:
Zasada Otwarte / Zamknięte (Open / Closed Principle)
Mówi się, że kierowanie sią nią może prowadzić do powstania zbyt długiej ścieżki dziedziczenia co prowadzi do złamania innej z reguł: Faworyzuj kompozycję w miejsce dziedziczenia.

Wydaje mi się, że piszą to osoby, które ślepo dostosowują kod do zasad. Nie zastanawiając się nad ich sensem i potrzebą stosowania w określonym przypadku. Być może też nie za bardzo rozumieją te zasady. Uważam, że sama ich znajomość nie zastąpi doświadczenia i zdecydowanie nie zwalnia od myślenia.

W kolejnych wpisach postaram się przybliżyć na przykładach te SOLID aka solidne reguły. Znajdziesz je klikając na odnośniki znajdujące się w rozwinięciu znaczenia akronimu SOLID.

Miłego kodowania!

Jestem mężem, ojcem, programistą, projektantem, analitykiem, amatorskim gitarzystą...

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *