Kurzfassung
Domain-Driven Design (DDD) ist eine von Eric Evans eingeführte Softwareentwicklungsphilosophie, die dafür plädiert, Softwaremodelle so zu gestalten, dass sie die Geschäftsdomäne eng widerspiegeln, unter Verwendung einer gemeinsamen Sprache zwischen Entwicklern und Domänenexperten.
Was ist DDD?
Domain-Driven Design ist eine Sammlung von Prinzipien, Mustern und Praktiken für die Gestaltung komplexer Softwaresysteme, bei der die Geschäftsdomäne im Mittelpunkt aller Designentscheidungen steht. Es wurde von Eric Evans in seinem gleichnamigen Buch aus dem Jahr 2003 eingeführt.
Zu den Kernkonzepten von DDD gehören die Ubiquitous Language (ein gemeinsames Vokabular zwischen Entwicklern und Geschäftsbeteiligten), Bounded Contexts (explizite Grenzen, innerhalb derer ein Modell gilt), Aggregates (Cluster von Domänenobjekten, die als Einheit behandelt werden) und Domain Events (Aufzeichnungen von Ereignissen in der Domäne).
DDD steht in engem Zusammenhang mit dem Microservices-Architekturstil. Bounded Contexts aus DDD werden häufig direkt auf einzelne Microservices abgebildet und bieten eine fundierte Grundlage für die Entscheidung, wo Servicegrenzen liegen sollen. DDD hilft Teams, das „Big Ball of Mud"-Problem zu vermeiden, indem Komplexität in handhabbare, kohärente Domänenmodelle strukturiert wird.
Warum ist DDD relevant?
- Geschäftsausrichtung: DDD stellt sicher, dass Softwaremodelle Geschäftskonzepte genau widerspiegeln und reduziert die Übersetzungslücke zwischen Anforderungen und Code
- Servicegrenzen: Bounded Contexts bieten einen fundierten Ansatz zur Zerlegung eines Systems in Microservices
- Komplexitätsmanagement: Strategische und taktische DDD-Muster helfen Teams, mit der inhärenten Komplexität groß angelegter Softwaresysteme umzugehen