Hva er Domain-Driven Design
Design basert på forretningsdomene
Hva er DDD
Domain-Driven Design (DDD) er en programvareutviklingstilnærming som fokuserer på modellering av forretningsdomenet og tett samarbeid mellom utviklere og domeneeksperter.
Strategisk Design
| Konsept | Beskrivelse | |---------|-------------| | Bounded Context | Modellgrenser med allestedsnærværende språk | | Ubiquitous Language | Delt språk for team og forretning | | Context Map | Kart over relasjoner mellom kontekster | | Subdomain | Underdomene (Core/Supporting/Generic) |
Taktisk Design
| Mønster | Formål | |---------|--------| | Entity | Objekt med identitet | | Value Object | Uforanderlig verdiobjekt | | Aggregate | Gruppe av relaterte entiteter | | Aggregate Root | Inngangspunkt til aggregat | | Repository | Tilgang til aggregater | | Domain Service | Forretningslogikk utenfor entiteter | | Domain Event | Hendelse i domenet | | Factory | Opprettelse av komplekse objekter |
Underdomentyper
- Core Domain — konkurransefortrinn
- Supporting Subdomain — støtter core
- Generic Subdomain — standardløsninger
Integrasjonsmønstre
| Mønster | Beskrivelse | |---------|-------------| | Shared Kernel | Delt kjerne mellom kontekster | | Customer-Supplier | Kunde-leverandørforhold | | Conformist | Konformitet til upstream-modell | | Anticorruption Layer | Beskyttelse fra eksterne modeller | | Open Host Service | Offentlig API for kontekst |
Når bruke DDD
- Kompleks forretningslogikk
- Langvarig prosjekt
- Tilgang til domeneeksperter
- Team klart til å investere i design