Definicja
DDD (Domain-Driven Design) to podejście Erica Evansa, w którym architektura systemu wynika z modelu domeny biznesowej, a nie odwrotnie.
Kluczowe koncepty
| Koncept | Opis |
|---|---|
| Ubiquitous Language | Wspólny język biznesu i IT (te same terminy w kodzie i rozmowach) |
| Bounded Context | Granica, w której model ma jednoznaczne znaczenie |
| Entity | Obiekt z tożsamością (np. Zamówienie z ID) |
| Value Object | Obiekt bez tożsamości, definiowany przez wartość (np. Adres) |
| Aggregate | Klaster obiektów traktowany jako jednostka |
| Domain Event | Coś, co się wydarzyło w domenie ("ZamówienieZłożone") |
| Repository | Wzorzec dostępu do danych |
Dlaczego BA powinien znać DDD?
BA jest naturalnym ekspertem domenowym w zespole: - definiuje Ubiquitous Language (słownik domeny), - identyfikuje Bounded Contexts (granice modułów), - modeluje domenę (encje, procesy, reguły biznesowe).
DDD a mikroserwisy
Bounded Context z DDD → naturalny podział na mikroserwisy.