Domain-Driven Design дегеніміз не
Бизнес доменіне негізделген дизайн
DDD дегеніміз не
Domain-Driven Design (DDD) — бизнес доменін модельдеуге және әзірлеушілер мен домен сарапшылары арасындағы тығыз ынтымақтастыққа бағытталған бағдарламалық қамтамасыз етуді әзірлеу тәсілі.
Стратегиялық дизайн
| Тұжырымдама | Сипаттама | |-------------|-----------| | Bounded Context | Әмбебап тілі бар модель шекаралары | | Ubiquitous Language | Команда мен бизнестің ортақ тілі | | Context Map | Контексттер арасындағы қатынастар картасы | | Subdomain | Қосалқы домен (Core/Supporting/Generic) |
Тактикалық дизайн
| Паттерн | Мақсаты | |---------|---------| | Entity | Сәйкестігі бар нысан | | Value Object | Өзгермейтін мән нысаны | | Aggregate | Байланысты entity топтары | | Aggregate Root | Агрегатқа кіру нүктесі | | Repository | Агрегаттарға қол жеткізу | | Domain Service | Entity-лерден тыс бизнес логика | | Domain Event | Домендегі оқиға | | Factory | Күрделі нысандарды құру |
Қосалқы домен түрлері
- Core Domain — бәсекелестік артықшылық
- Supporting Subdomain — core-ды қолдайды
- Generic Subdomain — стандартты шешімдер
Интеграция паттерндері
| Паттерн | Сипаттама | |---------|-----------| | Shared Kernel | Контексттер арасындағы ортақ ядро | | Customer-Supplier | Тұтынушы-жеткізуші қарым-қатынасы | | Conformist | Upstream моделіне сәйкестік | | Anticorruption Layer | Сыртқы модельдерден қорғау | | Open Host Service | Контекстің ашық API |
DDD қашан қолданылады
- Күрделі бизнес логика
- Ұзақ мерзімді жоба
- Домен сарапшыларына қол жетімділік
- Дизайнға инвестиция салуға дайын команда