Was ist Domain-Driven Design
Design basierend auf Geschäftsdomäne
Was ist DDD
Domain-Driven Design (DDD) ist ein Softwareentwicklungsansatz, der sich auf die Modellierung der Geschäftsdomäne und die enge Zusammenarbeit zwischen Entwicklern und Domänenexperten konzentriert.
Strategisches Design
| Konzept | Beschreibung | |---------|--------------| | Bounded Context | Modellgrenzen mit einheitlicher Sprache | | Ubiquitous Language | Gemeinsame Sprache von Team und Geschäft | | Context Map | Karte der Beziehungen zwischen Kontexten | | Subdomain | Subdomäne (Core/Supporting/Generic) |
Taktisches Design
| Muster | Zweck | |--------|-------| | Entity | Objekt mit Identität | | Value Object | Unveränderliches Wertobjekt | | Aggregate | Gruppe verwandter Entitäten | | Aggregate Root | Einstiegspunkt zum Aggregat | | Repository | Zugriff auf Aggregate | | Domain Service | Geschäftslogik außerhalb von Entitäten | | Domain Event | Ereignis in der Domäne | | Factory | Erstellung komplexer Objekte |
Subdomänen-Typen
- Core Domain — Wettbewerbsvorteil
- Supporting Subdomain — unterstützt Core
- Generic Subdomain — Standardlösungen
Integrationsmuster
| Muster | Beschreibung | |--------|--------------| | Shared Kernel | Gemeinsamer Kern zwischen Kontexten | | Customer-Supplier | Kunden-Lieferanten-Beziehung | | Conformist | Anpassung an Upstream-Modell | | Anticorruption Layer | Schutz vor externen Modellen | | Open Host Service | Öffentliche API des Kontexts |
Wann DDD anwenden
- Komplexe Geschäftslogik
- Langlebiges Projekt
- Zugang zu Domänenexperten
- Team bereit für Design-Investition