Bewertung:

Das Buch stellt eine innovative und leicht verständliche Untersuchung der Architektur für unveränderliche Daten dar, die auf einer soliden mathematischen Grundlage beruht. Es erörtert die Relevanz unveränderlicher Architekturen in der modernen Softwareentwicklung und bietet Einblicke in Konzepte wie das Historic Model und die Factual Modeling Language. Obwohl das Buch unterhaltsam ist und zum Nachdenken anregt, gibt es Herausforderungen bei der praktischen Anwendung aufgrund der begrenzten bestehenden Unterstützung in der Softwareentwicklungslandschaft.
Vorteile:⬤ Obwohl es von einem Mathematiker geschrieben wurde, ist es sehr gut lesbar und leicht zugänglich.
⬤ Klare und prägnante Erklärungen zu komplexen Themen wie React, Blockchain und unveränderliche Daten.
⬤ Bietet wertvolle Einblicke in verschiedene Architekturansätze und Konzepte.
⬤ Präsentiert bahnbrechende Ideen, die traditionelle Modelle von Anwendungsdaten in Frage stellen.
⬤ Eleganz und Spezifität in der Sprache aufgrund des mathematischen Hintergrunds des Autors.
⬤ Viele der vorgestellten Ideen sind ihrer Zeit voraus und in der Branche noch nicht weit verbreitet.
⬤ Begrenzte praktische Unterstützung durch wenige existierende Bibliotheken oder Werkzeuge zur Implementierung der vorgestellten Konzepte.
⬤ Erfordert viel Grundlagenlektüre, um die vorgestellten Konzepte vollständig zu verstehen.
(basierend auf 5 Leserbewertungen)
The Art of Immutable Architecture: Theory and Practice of Data Management in Distributed Systems
In diesem Buch lernen Sie, wie Sie ein verteiltes System aus der Perspektive unveränderlicher Objekte bewerten können. Sie werden die Probleme in bestehenden Entwürfen verstehen, wissen, wie Sie kleine Änderungen vornehmen können, um diese Probleme zu beheben, und lernen, die Prinzipien der unveränderlichen Architektur auf Ihre Werkzeuge anzuwenden.
Die meisten Softwarekomponenten konzentrieren sich auf den Zustand von Objekten. Sie speichern den aktuellen Zustand einer Zeile in einer relationalen Datenbank. Sie verfolgen Zustandsänderungen im Laufe der Zeit und gehen dabei von mehreren grundlegenden Annahmen aus: Es gibt eine einzige aktuelle Version jedes Objekts, der Zustand eines Objekts ändert sich sequentiell, und es existiert ein System von Aufzeichnungen.
Bei der Entwicklung verteilter Systeme stellt dies eine Herausforderung dar. Egal, ob es sich um autonome Microservices oder unverbundene mobile Anwendungen handelt, viele der Probleme, die wir zu lösen versuchen, laufen darauf hinaus, einen sich ständig ändernden Zustand zwischen isolierten Komponenten zu synchronisieren. Verteilte Systeme wären viel einfacher zu erstellen, wenn sich Objekte nicht ändern könnten.
Nach der Lektüre von Die Kunst der unveränderlichen Architektur werden Sie die Vorteile der Verwendung unveränderlicher Objekte in Ihren eigenen verteilten Systemen verstehen. Sie werden eine Reihe von Regeln für die Identifizierung und den Austausch unveränderlicher Objekte kennenlernen und eine Sammlung nützlicher Theoreme sehen, die sicherstellen, dass die von uns erstellten verteilten Systeme letztendlich konsistent sind. Mithilfe von Mustern werden Sie herausfinden, wo die Wahrheit konvergiert, sehen, wie Änderungen assoziativ und nicht sequentiell sind, und Sie werden sich damit anfreunden können, dass es nicht mehr nur eine einzige Quelle der Wahrheit gibt. Praktische Beispiele zeigen Ihnen, wie Sie mit den beschriebenen Mustern, Techniken und Werkzeugen Software erstellen können. Am Ende werden Sie über die Sprache und die Ressourcen verfügen, die Sie benötigen, um verteilte Systeme sicher zu analysieren und zu konstruieren.
Die Annahmen der Vergangenheit reichten aus, um Systeme für einen einzigen Benutzer und einen einzigen Computer zu entwickeln. Mit der Ausweitung auf mehrere Geräte, gemeinsame Erfahrungen und Cloud Computing arbeiten sie jedoch gegen uns. Es ist Zeit für eine neue Reihe von Annahmen. Beginnen Sie mit unveränderlichen Objekten, und bauen Sie bessere verteilte Systeme.
Was Sie lernen werden
⬤ Evaluieren Sie ein verteiltes System aus der Perspektive unveränderlicher Objekte.
⬤ Erkennen Sie die Probleme in bestehenden Entwürfen und nehmen Sie kleine Änderungen vor, um sie zu korrigieren.
⬤ Ein neues System von Grund auf aufbauen und dabei Muster anwenden.
Wenden Sie die Prinzipien der unveränderlichen Architektur auf Ihre Werkzeuge an, einschließlich SQL-Datenbanken, Nachrichtenwarteschlangen und die Netzwerkprotokolle, die Sie bereits verwenden.
⬤ Entdecken Sie neue Tools, die diese Prinzipien von Haus aus anwenden.
Für wen ist dieses Buch gedacht?
Softwarearchitekten und erfahrene Entwickler. Es enthält Beispiele in SQL und Sprachen wie JavaScript und C#. Frühere Erfahrungen mit verteilter Datenverarbeitung, Datenmodellierung oder Geschäftsanalyse sind hilfreich.