Langlebige Software-Architekturen
Technische Schulden analysieren, begrenzen und abbauen
Carola Lilienthal
Standardwerk zur SoftwarearchitekturSchließt die Lücke zwischen Softwarearchitektur und Implementierung der Codebasis
– Einfache und übersichtliche Strukturierung aller wichtigen Grundkonzepte im Bereich der Softwarearchitektur, die die typischen Fehler in der Softwarearchitektur von großen Softwaresysteme aufzeigen und sinnvolle Lösungen vermitteln.
– Mit über 200 farbigen Bildern aus real existierenden Softwaresystemen und etlichen Fallbeispielen
Zu Beginn eines Projekts erarbeiten die Architekten und das Entwicklungsteam eine zugeschnittene Architekturblaupause für die anstehende Entwicklung. Aber während der Implementierung weicht das Team häufig ungewollt von dieser Vorgabe ab. Die Folge davon: Die Architektur des Systems erodiert, die Komplexität nimmt zu, und es werden technische Schulden aufgebaut. Wartung und Erweiterung der Software werden immer aufwendiger.
In diesem Buch zeigt die Autorin, welche Fehler in Softwareprojekten bei der Umsetzung der Architektur vermieden werden sollten und welche Prinzipien eingehalten werden müssen, um langlebige Architekturen zu entwerfen oder bei bestehenden Systemen zu langlebigen Architekturen zu gelangen. Sie geht auf Muster in Softwarearchitekturen und Mustersprachen ein, erläutert verschiedene Architekturstile und zeigt, welche Vorgaben letztlich zu Architekturen führen, die für Entwickler noch gut durchschaubar sind.
Mit über 200 farbigen Bildern aus real existierenden Softwaresystemen und etlichen Fallbeispielen werden schlechte und gute Lösungen verständlich und nachvollziehbar dargestellt. Empfehlungen und vielfältige Hinweise aus Praxisprojekten erlauben dem Leser einen direkten Transfer zu seiner täglichen Arbeit.
Die 3. Auflage wurde in einzelnen Aspekten überarbeitet und insbesondere bei den Themen Domain-Driven Design und Microservices ergänzt. Neu aufgenommen wurden die Analyse von TypeScript-Systemen sowie Clean-, Onion- und hexagonale Architekturen.