Implementing Domain-Driven Design
Rezension von Sven Woltmann
In „Implementing Domain-Driven Design“ nimmt Vaughn Vernon die Leser:innen mit auf die Reise eines fiktiven Entwicklerteams, das ein Softwareprojekt mittels Domain-Driven Designs in die Praxis umsetzt. Dabei behandelt er neben strategischem Design (Domains, Subdomains, Bounded Contexts, Context Maps) und taktischem Design (Entities, Value Objects, Services, Modules, Aggregates, Factories, Repositories) auch Softwarearchitekturen, die sich gut mit Domain-Driven Design kombinieren lassen (wie Hexagonale Architektur, CQRS, Event-Driven Architecture, Event Sourcing).
Wie im richtigen Leben machen die Entwickler:innen Fehler und lernen aus ihnen. Dies hilft Leser:innen an vielen Stellen zu verstehen, warum sich der anfängliche Mehraufwand für Domain-Driven Design auf lange Sicht auszahlt.
Das Buch ist eine großartige Ergänzung zu Evans’ Klassiker „Domain-Driven Design“ und hat mir insbesondere dabei geholfen, den Zusammenhang von Bounded Contexts, Core Domain, Supporting Subdomains und generischen Subdomains zu verstehen. (Wichtig ist zu erwähnen, dass man Evans’ Buch nicht gelesen haben muss – alle Konzepte werden auch in diesem Buch von Grund auf erklärt.)
Die Prinzipien werden anhand von praxisnahen, detaillierten und leicht verständlichen Beispielen erläutert, die in Java (und teilweise Spring) implementiert sind. Ich verwende dieses Buch (zusammen mit Get Your Hands Dirty on Clean Architecture) regelmäßig als Nachschlagewerk.
Genau wie bei Evans’ Klassiker sollte man sich ausreichend Zeit nehmen, um das Buch gründlich durchzuarbeiten. Ich empfehle es allen, die Domain-Driven Design erfolgreich in der Praxis einsetzen wollen.
🎧 Geeignet als Hörbuch: Nein.
Andere Empfehlungen aus den Genres dieses Buches
Domain-Driven Design kompakt
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
Domain-Driven Design: Tackling Complexity in the Heart of Software
Design Patterns: Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software
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