Skip to main content

Обзор

Domain-Driven Design (DDD) — это подход к проектированию программных систем, в котором основное внимание уделяется модели предметной области и совместному использованию единого языка (Ubiquitous Language) бизнес‑экспертами и разработчиками.

Цель DDD — сократить разрыв между бизнесом и кодом, сделав модель программной системы отражением реального мира.

Зачем использовать DDD?

  • Выравнивание с бизнесом. Модель строится совместно с предметными экспертами и говорит на их языке.
  • Гибкость архитектуры. Чёткие границы между автономными контекстами (Bounded Contexts) облегчают изменение и замену частей системы.
  • Устойчивость к росту. Явная модульность и строгие зависимости предотвращают «зарастание» кода.
  • Повышение качества коммуникации. Все участники проекта используют одинаковые термины, что снижает количество недопониманий.

Подход к внедрению

  1. Исследуйте домен. Используйте Event Storming, Domain Story‑telling или просто совместные сессии с экспертами.
  2. Найдите границы контекста. Ищите команды, словарь и правила, которые естественно отделены.
  3. Стройте модель итеративно. Каждый спринт может уточнять и углублять модель.

Рекомендуемая литература

  1. Эрик Эванс, “Domain-Driven Design: Tackling Complexity in the Heart of Software” (2003) — «синяя книга», фундаментальные принципы.
  2. Vaughn Vernon, “Domain-Driven Design Distilled” (2016) — «зелёная книга», сжатое практическое введение.
  3. Vaughn Vernon, “Implementing Domain-Driven Design” (2013) — «красная книга», подробное практическое руководство.