pahanini.com

Предметно-ориентированное проектирование, Скотт Миллетт, Ник Тюн

POSTS
February 9, 2022

Попытаюсь кратко изложить содержание книги для тех, кто хочет познакомиться с DDD не тратя много времени.

Книга состоит из 4 частей и 26 глав. В книге есть несколько ключевых идей и концепций, к которым постоянно идет отсылка под разными углами.

Перечислю основные, далее будут ссылки на все части книги где будет приведено краткое содержание глав.

Основные концепции

Предметно ориентированное проектирование - это философия проектирования программного обеспечения (ПО). Это набор приемов и хороших практик которые позволят получить поддерживаемый продукт с наименьшей сложностью на выходе. Это не набор шаблонов и не фреймворк.

Предметная область это деятельность для которой создаётся ПО (ecom, банковская деятельность, медицина).

Смысловое ядро (core domain) - ключевая часть предметной области, то, что служит причиной создания софта, а не его покупки, главное на чем должно быть сосредоточено внимание команды.

Ограниченный контекст (bounded context) - устанавливает границы между моделями в коде. Проектирование модели ведется в рамках контекста.

Единый язык (ubiquitous language) - единая терминология которая используется бизнесом и разработчиками для коммуникации и описание сущностей в коде. Позволяет сократить количество абстракций и упростить коммуникацию.

Стратегические шаблоны - подходы и методики к проектированию, не связанные с организацией кода: сотрудничество, единый язык, ограниченные контексты.

Тактические шаблоны DDD - это приемы позволяющие создавать эффективные модели внутри контекста. По сути сюда относятся паттерны проектирования описанные у Фаулера.

Идеи

DDD подходит не всегда и это дорого - для получения выгоды нужно, чтобы система имела сложное смысловое ядро. Если система не отличается сложностью и не подвержена частым изменениям, то DDD тут не место.

Стратегические шаблоны важнее тактических - код не является узким местом, гораздо важнее изучать и осваивать предметную область вдали от клавиатуры.

Модель существует в границах своего контекста - важно защитить целостность каждой модели, и обозначить границы ответственности в коде. Это делается путем связывания модели с ограниченным контекстом.

Краткий обзор глав

Многие из них, на мой взгляд, представляют пережевывание уже упомянутых концепций, а некоторые содержат новую информацию.

  • Часть 1. Принципы и приемы предметно ориентированного проектирования.
  • DDD
© pahanini.com 2022