Оглавление
- 1 Дизайн, ориентированный на предметную область
- 1.1 Основы предметно-ориентированного дизайна
- 1.2 Обзор предметно-ориентированного дизайна
- 1.3 Виды моделей в DDD
- 1.4 Работа с моделями в DDD
- 1.5 Связь с другими идеями
- 1.6 Влияние на другие подходы к разработке ПО
- 1.7 Разделение ответственности за выполнение командных запросов (CQRS)
- 1.8 Поиск источников событий
- 1.9 Известные инструменты для DDD
- 1.10 Рекомендации и внешние ссылки
- 1.11 Полный текст статьи:
- 2 Доменно-ориентированный дизайн — Википедия
Дизайн, ориентированный на предметную область
-
Основы предметно-ориентированного дизайна
- Предметно-ориентированный дизайн (DDD) фокусируется на моделировании предметной области для разработки программного обеспечения.
- DDD использует высокоуровневые концепции и практики для создания общего языка между экспертами, пользователями и разработчиками.
-
Обзор предметно-ориентированного дизайна
- DDD включает в себя создание модели предметной области, стратегическое и тактическое проектирование, а также использование вездесущего языка.
- Модель предметной области является ключевым элементом DDD, а также стратегическое и тактическое проектирование.
-
Виды моделей в DDD
- Модели могут описывать сущности, значения, события и агрегаты.
- Агрегаты представляют собой совокупность объектов, которые управляются как единое целое.
-
Работа с моделями в DDD
- Создание объектов часто отделено от их фактического создания, что позволяет создавать репозитории и фабрики.
- Сервисы используются для описания функций, которые не принадлежат объектам.
-
Связь с другими идеями
- DDD связан с микросервисами и объектно-ориентированными подходами, такими как сущности/агрегатные корни и инкапсуляция состояния.
- Шаблон “голые объекты” утверждает, что пользовательский интерфейс должен отражать модель предметной области.
-
Влияние на другие подходы к разработке ПО
- DDD оказал влияние на проектирование, управляемое предметной областью, и аспектно-ориентированное программирование.
-
Разделение ответственности за выполнение командных запросов (CQRS)
- CQRS разделяет команды и запросы, что упрощает управление состоянием и логикой операций.
- Агрегатные корни отвечают за выполнение команд и публикацию событий.
-
Поиск источников событий
- Источник событий позволяет объектам отслеживать свое состояние через события, что упрощает применение аксиоматических теорем.
-
Известные инструменты для DDD
- Actifsource, Context Mapper, CubicWeb, OpenMDX и Restful Objects – это примеры инструментов, которые поддерживают DDD.
-
Рекомендации и внешние ссылки
- Ссылки на ресурсы и команды DDD доступны на GitHub.