Предметно-ориентированное проектирование (domain-driven design) Domain-Driven Design
Простыми словами
В O-AA domain-driven design — это набор СТРАТЕГИЧЕСКИХ строительных блоков, которыми разделяют проблемное пространство и пространство решений, а не техника проектирования классов. Вопрос, который он закрывает: где проходят границы, внутри которых модель остаётся однозначной, и какими отношениями эти границы связаны. Различение, которое здесь важно удержать: поддомены ограничивают применимость ДОМЕНОВ и живут в проблемном пространстве (они стабильны, меняются по стратегическим причинам и не зависят от программного обеспечения), а ограниченные контексты ограничивают применимость МОДЕЛЕЙ и живут в пространстве решений. И отдельная оговорка стандарта, которую легко упустить: ограниченные контексты — не модули; это границы смысла модели, дающие автономию отдельной команде.
Примеры
«While sub-domains delimit the applicability of domains, bounded contexts delimit the applicability of domain models.»
Open Agile Architecture™ Standard, Version 2.0 (C262), разд. 20.2 — поддомен против ограниченного контекста
«Conflicts of naming suggest different contexts because they indicate that the model mixes different ubiquitous languages.»
Open Agile Architecture™ Standard, Version 2.0 (C262), разд. 20.2 — как опознать границу
«Conducting an event storming workshop is a great way to accelerate the acquisition of domain knowledge and explore domain decomposition scenarios.»
Open Agile Architecture™ Standard, Version 2.0 (C262), разд. 20.1.1 — связка с event storming
Определение из первоисточника
дословная выпискаThe term “domain-driven design” was coined by Eric Evans in his book Domain-Driven Design: Tackling Complexity in the Heart of Software [Evans, 2003]. Domain-driven design offers strategic building blocks for analyzing and structuring the problem space and the solution space.
Термин «domain-driven design» ввёл Эрик Эванс в книге «Domain-Driven Design: Tackling Complexity in the Heart of Software». Предметно-ориентированное проектирование даёт стратегические строительные блоки для анализа и структурирования проблемного пространства и пространства решений.
ИсточникThe Open Group Open Agile Architecture™ Standard, Version 2.0. The Open Group, April 2026, C262, ISBN 1-957866-76-5
Основные параметры
Атрибуты этой сущности по справочнику источника.
- Проблемное пространство: домен, поддомены (generic, support, core), core domain. Пространство решений: bounded context, domain model, ubiquitous language, context map. Девять паттернов карты контекстов: Open Host Service, Event Publisher, Shared Kernel, Published Language, Separate Ways, Partnership, Customer/Supplier, Conformist, Anti-Corruption Layer.
Связанные понятия
Опишите архитектуру своей компании в Storm
Реестр процессов, архитектурное рабочее пространство, связи между системами и процессами — те самые артефакты, только про вашу организацию.
Это же в StormАрхитектура систем и интеграцийРеестр процессовКарта бизнес-способностей