Nie jest to typowa recenzja. Poniżej przedstawiam parę wiadomości, przemyśleń z programowania na bazie lektury, które chciałbym zapamiętać:
- Dobrze omówiony podział paradygmatów: strukturalny, obiektowy i funkcyjny. Idealna realizacja funkcyjnego jest event sourcing systemów w których każdego dnia zapisywany jest stan bieżący, a każda zmiana jest trzymana jako transakcja - tak jak działa system git
-Do powstania paradygmatu strukturalnego doprowadziły trudności z “goto”, a do paradygmatu obiektowego wynalezienie sposobu na to, by zmienne lokalne mogły istnieć po zakończeniu funkcji (dzięki przeniesieniu na “styrte”). W ten sposób powstał konstruktor.
- Znane z javy break i wyjątki to współczesne “goto”, czyli przekazywanie sterowania. Tak to trzeba rozumieć,
-Zasada SRP jest powszechnie źle interpretowana. W tej zasadzie dzielimy funkcjonalności w zależności od aktorów.
-Rozdział o miarach stabilności komponentów jest zbyteczny. Nikt nie ma czasu na liczenie i rozmyślanie nad wskaźnikami stabilności i abstrakcyjności komponentów.
-Wpływ architektury na samo działanie aplikacji jest przeceniany. Ma ona wpływ na rozwój instalowanie i utrzymanie systemu.
-Prawo Conway - system odwzorowuje strukturę organizacji (i to jak bardzo!)
-Mikroserwisy tylko pozornie pozwalają na osobny development (sam tego doświadczyłem w życiu)
- Testy jednostkowe stanowią zewnętrzny krąg architektury
- Problem Fragile tests problem - pamiętam przypadek z życia wzięty, w którym mała zmiana w logowaniu spowodowała, że testy selenium padały, a naprawa ich była koszmarem.
-Najlepszym sposobem na dobry system jest testowanie rzeczy nieulotnych jak reguły biznesowe, a nie ulotnych jak UI
- Idealne warstwy według Uncle Boba na serwerze: oprogramowanie, OSAL, syste, operacyjny, HAL, firmware i sprzęt.
-Nie wolno wpuścić frameworków do naszych obiektów biznesowych. Im ich mniej tym lepiej. A jak już musimy to lepiej tworzyć wtyczki komunikacyjne.
-Springowy atrybut Autowired to przykład zbyt dużej ingerencji w obiekty biznesowe.
-Według autora dyski zostaną zastąpione przez pamięć ram.
"Czysta architektura. Struktura i design oprogramowania. Przewodnik dla profesjonalistów" autorstwa Roberta C. Martina to kamień milowy dla każdego programisty dążącego do doskonałości w projektowaniu oprogramowania. Martin nie tylko kładzie nacisk na zasady czystego kodu, ale również przewodzi czytelnikowi przez ścieżki tworzenia spójnej i skalowalnej architektury.
Jego jasne wyjaśnienia i praktyczne przykłady pomagają zrozumieć skomplikowane koncepcje związane z projektowaniem oprogramowania. Książka ta nie tylko przedstawia teoretyczne aspekty architektury, ale również dostarcza praktyczne wskazówki, jak stosować te zasady w codziennej pracy programisty.
Dla mnie osobiście, "Czysta architektura" stała się niezastąpionym źródłem wiedzy, które pomogło mi podnieść jakość moich projektów programistycznych. Martin nie tylko skupia się na technicznych aspektach, ale również zwraca uwagę na etyczne i społeczne odpowiedzialności programisty. To lektura obowiązkowa dla każdego, kto pragnie tworzyć oprogramowanie na najwyższym poziomie.