Vad är Domain-Driven Design
Design baserat på affärsdomän
Vad är DDD
Domain-Driven Design (DDD) är ett mjukvaruutvecklingssätt som fokuserar på modellering av affärsdomänen och nära samarbete mellan utvecklare och domänexperter.
Strategisk Design
| Koncept | Beskrivning | |---------|-------------| | Bounded Context | Modellgränser med allestädes närvarande språk | | Ubiquitous Language | Delat språk för team och affär | | Context Map | Karta över relationer mellan kontexter | | Subdomain | Subdomän (Core/Supporting/Generic) |
Taktisk Design
| Mönster | Syfte | |---------|-------| | Entity | Objekt med identitet | | Value Object | Oföränderligt värdeobjekt | | Aggregate | Grupp av relaterade entiteter | | Aggregate Root | Ingångspunkt till aggregat | | Repository | Åtkomst till aggregat | | Domain Service | Affärslogik utanför entiteter | | Domain Event | Händelse i domänen | | Factory | Skapande av komplexa objekt |
Subdomäntyper
- Core Domain — konkurrensfördel
- Supporting Subdomain — stödjer core
- Generic Subdomain — standardlösningar
Integrationsmönster
| Mönster | Beskrivning | |---------|-------------| | Shared Kernel | Delad kärna mellan kontexter | | Customer-Supplier | Kund-leverantörsförhållande | | Conformist | Överensstämmelse med upstream-modell | | Anticorruption Layer | Skydd från externa modeller | | Open Host Service | Offentligt API för kontext |
När tillämpa DDD
- Komplex affärslogik
- Långlivat projekt
- Tillgång till domänexperter
- Team redo att investera i design