Das Blue Book von Eric J. Evans „Domain-Driven Design: Tackling Complexity in the Heart of Software“ ist bereits über 15 Jahre alt. Trotzdem finden die dort genannten umfangreichen Methoden erst in den letzten Jahren ihren Weg in die professionelle Softwareentwicklung. Mit dem Red Book „Implementing Domain-Driven Design“ veranschaulicht Vaughn Vernon 2013, wie Domain Driven Design in der Praxis eingesetzt wird, und fördert damit maßgeblich dessen Verbreitung.
In meinem letzten Projekt konnte ich mehrere Jahre bei der Firma neuland in Bremen Internetshops nach DDD entwickeln. Dabei nutzten wir eine Vielzahl der Methoden des strategischen und taktischen Designs. Passenderweise bekam ich von meinen Kollegen zum Abschied das erste ins deutsche übersetzte Buch zu DDD geschenkt: „Domain-Driven Design kompakt“ von Vaughn Vernon (übersetzt von meinen ehemaligen Kollegen der WPS – Workplace Solutions Carola Lilienthal und Henning Schwentner).
Um sich dem Thema Domain Driven Design zu nähern, bieten sich beispielsweise die folgenden Quellen an:
- Heise Artikel: Domain-driven Design erklärt
- InnoQ-Podcast: Überblick über Strategic und Technical Design mit DDD
- SoftwareArchitekTOUR-Podcast (Gernot Starke, Carola Lilienthal, Eberhard Wolff):
- Episode 59: Domain-driven Design (DDD)
Schwerpunkt: Grundlagen und Tactical Design - Episode 61: Domain-Driven Design (DDD), Episode 2
Schwerpunkt: Strategic Design - Episode 64: Domain-Driven Design (DDD), Episode 3
Schwerpunkt: Event Storming und Domain Story Telling
- Episode 59: Domain-driven Design (DDD)
- Und natürlich: das Blue Book, das Red Book und der kompakte Einstieg
Hier eine kleine Sammlung von Konzepten und Methoden des Domain Driven Designs:
- Strategisches Design:
- Bounded Context (Begrenzter Kontext)
- Ubiquitous Language (Allgegenwärtige Sprache)
- Domain und Subdomains
- Context Mapping
- Taktisches Design:
- Building Blocks (Aggregate, Entity, Value Object, Domain Event)
- Aggregates + Aggregate Roots
- Domain Events + Event Sourcing
- Event Storming
- Domain Storytelling
Falls wir vor Jahren eine serviceorientierte Architektur umgesetzt haben, erhalten wir mit diesem Video von Carola Lilienthal einen Überblick, wie der Migrationsweg zu einer DDD-Architektur aussehen könnte: Von Service-orientierten Architekturen (SOA) zu DDD und Microservices. Und immer daran denken, bei DDD geht es nicht nur um Technik, sondern vor allem um die Kooperation von Menschen und deren Prozesse.