Ocena:

Książka przedstawia innowacyjną i przystępną eksplorację architektury dla niezmiennych danych, wykorzystując solidne podstawy matematyczne. Omawia znaczenie niezmiennej architektury w nowoczesnym tworzeniu oprogramowania, oferując wgląd w koncepcje takie jak model historyczny i język modelowania faktów. Chociaż książka jest przyjemna i prowokuje do myślenia, istnieją wyzwania w jej praktycznym zastosowaniu ze względu na ograniczone istniejące wsparcie w środowisku programistycznym.
Zalety:⬤ Bardzo czytelna i przystępna, mimo że napisana przez matematyka.
⬤ Jasne i zwięzłe wyjaśnienia złożonych tematów, takich jak React, blockchain i niezmienne dane.
⬤ Zapewnia cenny wgląd w różne podejścia i koncepcje architektoniczne.
⬤ Prezentuje przełomowe pomysły, które rzucają wyzwanie tradycyjnym modelom danych aplikacji.
⬤ Elegancja i specyficzność języka dzięki matematycznemu wykształceniu autora.
⬤ Wiele przedstawionych pomysłów wyprzedza swoje czasy i nie zostało jeszcze powszechnie przyjętych w branży.
⬤ Ograniczone wsparcie praktyczne w postaci niewielu istniejących bibliotek lub narzędzi do implementacji omawianych koncepcji.
⬤ Wymaga wielu podstawowych lektur, aby w pełni zrozumieć prezentowane koncepcje.
(na podstawie 5 opinii czytelników)
The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems
Ta książka uczy, jak ocenić system rozproszony z perspektywy niezmiennych obiektów. Zrozumiesz problemy występujące w istniejących projektach, dowiesz się, jak wprowadzać niewielkie modyfikacje w celu naprawienia tych problemów i nauczysz się stosować zasady niezmiennej architektury w swoich narzędziach.
Większość komponentów oprogramowania skupia się na stanie obiektów. Przechowują one bieżący stan wiersza w relacyjnej bazie danych. Śledzą zmiany stanu w czasie, przyjmując kilka podstawowych założeń: istnieje jedna najnowsza wersja każdego obiektu, stan obiektu zmienia się sekwencyjnie i istnieje system rekordów.
Jest to wyzwanie, jeśli chodzi o budowanie systemów rozproszonych. Niezależnie od tego, czy mamy do czynienia z autonomicznymi mikrousługami, czy też odłączonymi aplikacjami mobilnymi, wiele problemów, które próbujemy rozwiązać, sprowadza się do synchronizacji ciągle zmieniającego się stanu między odizolowanymi komponentami. Systemy rozproszone byłyby znacznie łatwiejsze do zbudowania, gdyby obiekty nie mogły się zmieniać.
Po przeczytaniu "The Art of Immutable Architecture" zrozumiesz korzyści płynące z używania niezmiennych obiektów we własnych systemach rozproszonych. Poznasz zestaw reguł identyfikacji i wymiany niezmiennych obiektów oraz zobaczysz zbiór przydatnych twierdzeń, które wyłaniają się i zapewniają, że budowane przez nas systemy rozproszone są ostatecznie spójne. Korzystając z wzorców, dowiesz się, gdzie prawda jest zbieżna, zobaczysz, jak zmiany są asocjacyjne, a nie sekwencyjne, i poczujesz się komfortowo, rozumiejąc, że nie ma już jednego źródła prawdy. Praktyczne przykłady pokazują, jak tworzyć oprogramowanie przy użyciu opisanych wzorców, technik i narzędzi. Pod koniec będziesz posiadać język i zasoby potrzebne do analizowania i konstruowania systemów rozproszonych z pewnością siebie.
Założenia z przeszłości były wystarczające do budowania systemów dla jednego użytkownika i jednego komputera. Jednak wraz z rozwojem wielu urządzeń, współdzielonych doświadczeń i przetwarzania w chmurze, założenia te działają przeciwko nam. Nadszedł czas na nowy zestaw założeń. Zacznij od niezmiennych obiektów i buduj lepsze systemy rozproszone.
Czego się nauczysz
⬤ Oceń system rozproszony z perspektywy niezmiennych obiektów.
⬤ Rozpoznawanie problemów w istniejących projektach i wprowadzanie niewielkich modyfikacji w celu ich naprawienia.
⬤ Uruchamiać nowy system od podstaw, stosując wzorce.
Zastosuj zasady niezmiennej architektury do swoich narzędzi, w tym baz danych SQL, kolejek komunikatów i protokołów sieciowych, których już używasz.
⬤ Odkryć nowe narzędzia, które natywnie stosują te zasady.
Dla kogo jest ta książka
Architekci oprogramowania i starsi programiści. Zawiera przykłady w SQL i językach takich jak JavaScript i C#. Pomocne jest wcześniejsze doświadczenie w zakresie przetwarzania rozproszonego, modelowania danych lub analizy biznesowej.