Domain-Driven Design: Tackling Complexity in the Heart of Software
Rezension von Sven Woltmann
Eric Evans beschreibt in seinem Klassiker einen bahnbrechenden Ansatz der Softwareentwicklung, dessen Kernelement ein objektorientiertes Modell ist, welches das fachliche – also das in den Geschäftsabteilungen eines Unternehmens verwendete – in der Regel nicht formell definierte – Modell möglichst originalgetreu abbildet.
Die Entwicklung und Pflege eines solchen Modells erfordert eine enge Zusammenarbeit zwischen IT- und Fachabteilungen. Die Schaffung einer gemeinsamen, eindeutigen Sprache – der „ubiquitous language“ – ermöglicht eine Kommunikation ohne Mehrdeutigkeiten und Missverständnisse.
Domänenmodell und enge Zusammenarbeit führen letztendlich zu einer Anwendung, die genau das tut, was sich die Fachabteilung von ihr erhofft hat – und die sich leicht an neue Anforderungen anpassen lässt.
Das Buch zeigt – unterstützt durch zahlreiche anschauliche Beispiele – einen systematischen Weg von den fachlichen Anforderungen hin zum detaillierten technischen Modell. Es bedient sich dabei eines Repertoires technischer Bausteinen – wie Entities, Value Objects, Aggregates, Services, Repositories und Factories – sowie übergeordneter Konzepten wie Bounded Context und Context Map, Shared Kernel und Anticorruption Layer sowie Core- und Subdomains, um nur die bekanntesten zu nennen.
Das Buch ist eines der wichtigsten in der Softwareentwicklung und auch nach zwei Jahrzehnten noch topaktuell. Es ist allerdings keine leichte Lektüre – idealerweise sollte man einige Jahre an Programmiererfahrung mitbringen und sich für das Durcharbeiten ein paar Wochen Zeit nehmen. Die investierte Zeit und Mühe werden sich lohnen und dich auf eine neue Ebene der Softwareentwicklung heben.
🎧 Geeignet als Hörbuch: Nein.
Andere Empfehlungen aus den Genres dieses Buches
Clean Architecture – Gute Softwarearchitekturen: Das Praxis-Handbuch für professionelles Softwaredesign. Regeln und Paradigmen für effiziente Softwarestrukturierung.
Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java
Implementing Domain-Driven Design
Design Patterns: Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software
Domain-Driven Design kompakt
Pattern Hatching: Design Patterns Applied
Refactoring: Wie Sie das Design bestehender Software verbessern
Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code
Clean Craftsmanship: Best Practices, Standards und Ethik für die Softwareentwicklung
Effektives Arbeiten mit Legacy Code. Refactoring und Testen bestehender Software
Der pragmatische Programmierer: Ihr Weg zur Meisterschaft
Growing Object-Oriented Software, Guided by Tests
Clean Coder: Verhaltensregeln für professionelle Programmierer
Agile Software Development: Principles, Patterns, and Practices
Extreme Programming: Das Manifest