Mikä on Domain-Driven Design
Liiketoiminta-alueeseen perustuva suunnittelu
Mikä on DDD
Domain-Driven Design (DDD) on ohjelmistokehitysmenetelmä, joka keskittyy liiketoiminta-alueen mallintamiseen ja läheiseen yhteistyöhön kehittäjien ja alan asiantuntijoiden välillä.
Strateginen Suunnittelu
| Käsite | Kuvaus | |--------|--------| | Bounded Context | Mallirajojen kanssa kaikkialla oleva kieli | | Ubiquitous Language | Tiimin ja liiketoiminnan jaettu kieli | | Context Map | Kontekstien välisten suhteiden kartta | | Subdomain | Alialue (Core/Supporting/Generic) |
Taktinen Suunnittelu
| Malli | Tarkoitus | |-------|-----------| | Entity | Identiteetillä varustettu olio | | Value Object | Muuttumaton arvoolio | | Aggregate | Ryhmä toisiinsa liittyviä entiteettejä | | Aggregate Root | Sisäänkäyntipiste aggregaattiin | | Repository | Pääsy aggregaatteihin | | Domain Service | Liiketoimintalogiikka entiteettien ulkopuolella | | Domain Event | Tapahtuma domainissa | | Factory | Monimutkaisten olioiden luonti |
Alidomainityypit
- Core Domain — kilpailuetu
- Supporting Subdomain — tukee corea
- Generic Subdomain — vakioratkaisut
Integraatiokuviot
| Malli | Kuvaus | |-------|--------| | Shared Kernel | Jaettu ydin kontekstien välillä | | Customer-Supplier | Asiakas-toimittajasuhde | | Conformist | Mukautuminen upstream-malliin | | Anticorruption Layer | Suojaus ulkoisilta malleilta | | Open Host Service | Kontekstin julkinen API |
Milloin soveltaa DDD
- Monimutkainen liiketoimintalogiikka
- Pitkäikäinen projekti
- Pääsy alan asiantuntijoihin
- Tiimi valmis investoimaan suunnitteluun