Gdy dowiedziałem się o nowej książce Roberta C. Martina „Czysta Architektura”, musiałem ją mieć, gdyż darzę autora dużym zaufaniem. Jeszcze przed otwarciem wiedziałem, że tytułowa bohaterka, będzie architekturą opartą na wtyczkach i pluginach. Pomimo tej oczywistości, książka okazała się bardzo wartościowa. Ze względu na masę argumentów i przykładów. Wiele rzeczy pokryło się z moją dotychczasową wiedzą, ale dowiedziałem się również czegoś nowego. Czego? Już piszę i zapraszam.

Jak dzielić na komponenty

Warto dzielić kod na komponenty, ale robić to dobrze to już niełatwa sztuka. Podczas lektury znalazłem kilka wskazówek jak robić to lepiej. Wezmę je pod uwagę podczas analizy podziału na komponenty w przyszłości. O jakich wskazówkach dokładnie mowa?

Przenieś zasadę SRP na poziom komponentów. Tak, aby dana, odizolowana, część systemu była zmieniana tylko z jednego powodu. Łatwo powiedzieć, ale jak to wykryć? Spójrz na system z poziomu ról go użytkujących. Przykładowo, gdy dwóch różnych aktorów ma widzieć taki sam widok. To zastanów się, czy to rzeczywiście ten sam widok. Czy i jak duża jest szansa, że te ekrany dla poszczególnych użytkowników będą się zmieniać niezależnie od siebie? Jeżeli będą, to warto umieścić je w różnych komponentach. Czasem być może, lepiej jest użyć metody kopiego-pasta i rozwijać niezależnie niż reużywać? Jest to coś, co od dawna mi siedziało w głowie, ale nie potrafiłem tego dobrze uargumentować.

Abstrakcyjność i stabilność

Przebrnąłem przez kilka książek Wujka Boba. Temat ten był poruszany wielokrotnie, ale dopiero teraz dojrzałem, by zrozumieć, o co chodzi. Już wiem jak zdiagnozować komponenty znajdujące się w strefie bólu i strefie bezużyteczności. Wytłumaczone podobnie jak w poprzednich książkach, ale teraz, potrafię sobie podpiąć to do konkretnych projektów i sytuacji. W każdym razie dobrze, że pojawił się ten temat to go utrwaliłem.

Kolejne paradygmaty coś nam zabierają

Na początku był assembler, a programista mógł wszystko. Ceną tego była trudność pisania oraz olbrzymia dyscyplina, jaką trzeba było zachować. Z pomocą przyszły nowe paradygmaty, jednak nie za darmo. Z jednej strony bardzo ułatwiają tworzenie oprogramowania, ściągając sporo obowiązków z programistycznych głów, ale z drugiej strony zabierają część wolności, a konkretnie.

  • Programowanie strukturalne — zabiera dowolność w sterowaniu aplikacji, czyli instrukcję goto, ale ułatwia używanie funkcji.
  • Programowanie obiektowe — zabiera możliwość żonglowania wskaźnikami, ale ułatwia polimorfizm.
  • Programowanie funkcyjne — zabrania zmieniać wartości, ale ułatwia zrównoleglanie.

Podsumowując

Polecam ten wolumen, przede wszystkim, jeżeli nie miałeś styczności z Wujkiem Bobem. Jest to skondensowany przewodnik o czystej architekturze i rzeczach ją otaczających. Czytałeś tę książkę? Jaką masz opinie na jej temat? A może znasz jakieś inne warte polecenia książki w tym temacie? Dzięki i pozdrawiam.



Podobało Ci się?

Zapisz się i nie przegap kolejnych postów.


Dodaj komentarz

Twój adres email nie zostanie opublikowany.

This site uses Akismet to reduce spam. Learn how your comment data is processed.