📖 Компьютерная литература [Michael Plöd] Практический Domain-Driven Design на примерах (2026)

  • ОФОРМИТЬ ПОДПИСКУ

Calvin Candie

Вечный

Calvin Candie

Вечный
2 Сен 2018
55,181
12,556
Автор: Michael Plöd
Название: Практический Domain-Driven Design на примерах (2026)

1792557089296.png

Язык: английский

Если вы уже слышали про Domain-Driven Design, но на реальном проекте снова получаете запутанные сервисы, размытые границы и бизнес-логику, размазанную по контроллерам, эта книга поможет. Michael Plöd не пересказывает классику, а показывает DDD в работе: от первых разговоров с экспертами до готового кода на Java и Spring Boot.

Вся книга построена на одном сквозном кейсе из ипотечного кредитования. В этой области много правил, ролей, ограничений и взаимосвязанных систем, поэтому каждое решение проверяется на реальной сложности. Вы увидите, как перейти от расплывчатых требований к понятной модели, как разделить систему на контексты и почему одни границы микросервисов работают, а другие со временем превращаются в распределённый монолит.

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

«Практический Domain-Driven Design на примерах» — подробное практическое руководство по DDD. Оно помогает разобраться в стратегическом и тактическом проектировании сложных программных систем. Материал изложен доступно и опирается на реалистичный кейс по ипотечному кредитованию, поэтому читатель изучает не только теорию Domain-Driven Design, но и видит, как она применяется в реальных бизнес-сценариях.

В центре книги — практическое использование Domain-Driven Design при создании сложных корпоративных приложений. Автор объясняет, как определять границы предметной области, налаживать общение с бизнесом, строить модели и связывать архитектурные решения с настоящими потребностями продукта.

Отдельный акцент сделан на том, чтобы разработчики, архитекторы, аналитики и представители бизнеса понимали друг друга. Для этого подробно разбирается концепция Ubiquitous Language — единого языка, которым пользуются и команда, и эксперты предметной области.

Ключевые темы книги:
  • Основы Domain-Driven Design: принципы DDD, роль предметной области и бизнес-логики в проектировании.
  • Работа с экспертами: способы выявления знаний, уточнения требований и формирования общей модели.
  • Стратегическое проектирование: поддомены, ограниченные контексты, контекстные карты и границы моделей.
  • Тактические паттерны DDD: Entity, Value Object, Aggregate, Domain Event, Service, Factory и Repository.
  • Архитектурные подходы: гексагональная архитектура, «луковичная» архитектура и связь DDD с микросервисами.
  • Практическая реализация: пример разработки кейса с использованием Java и Spring Boot.
Практический подход на реалистичном кейсе:
Главное достоинство книги — множество примеров и упражнений. Вместо абстрактных рассуждений читатель шаг за шагом разбирает сложный бизнес-кейс из сферы ипотечного кредитования. Так становится понятно, как DDD работает в проектах с большим количеством правил, ограничений, ролей, процессов и взаимодействующих систем.

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

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

Event Storming:
Автор объясняет, как применять Event Storming для исследования бизнес-процессов через доменные события. Метод позволяет быстро выявить ключевые действия, участников, правила и слабые места системы.

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

User Story Mapping и Example Mapping:
Отдельно разобраны User Story Mapping и Example Mapping. Эти техники помогают структурировать требования, находить важные сценарии и превращать обсуждения с бизнесом в конкретные пользовательские истории и примеры поведения системы.

Стратегический Domain-Driven Design:
Подробно объясняется стратегический DDD: как анализировать предметную область, выделять поддомены и решать, где должны проходить границы моделей.

Элементы стратегического проектирования:
  • Предметная область и поддомены: как различать core domain, supporting subdomain и generic subdomain.
  • Bounded Context: как определить область применимости модели и избежать смешивания разных смыслов.
  • Context Map: как описывать отношения между системами, командами и моделями.
  • DDD и микросервисы: как ограниченные контексты помогают проектировать границы сервисов.
На практических примерах показано, почему микросервисы нельзя проектировать только вокруг технических слоёв или таблиц базы данных. Книга учит привязывать архитектурные границы к реальной бизнес-логике.

Тактическое проектирование и паттерны DDD:
Подробно разобраны ключевые паттерны тактического проектирования. Они помогают выразить бизнес-логику в коде и сделать модель понятнее, устойчивее и проще в сопровождении.

Основные паттерны:
  • Entity: объект с идентичностью и жизненным циклом.
  • Value Object: неизменяемый объект, описывающий значение без собственной идентичности.
  • Aggregate: граница согласованности и управления изменениями в модели.
  • Domain Event: событие, отражающее значимый факт в предметной области.
  • Domain Service: сервис для бизнес-операций, которые не принадлежат одной сущности или объекту-значению.
  • Factory: паттерн для создания сложных доменных объектов.
  • Repository: способ работы с сохранением и извлечением агрегатов без загрязнения доменной модели инфраструктурным кодом.
Архитектура приложений с DDD:
Книга не ограничивается моделированием. В ней также описаны архитектурные подходы, которые отделяют доменную модель от технических деталей и делают приложение гибче.

Архитектурные подходы:
  • Гексагональная архитектура: разделение доменной логики, портов, адаптеров и внешних зависимостей.
  • Луковичная архитектура: построение приложения вокруг доменного ядра.
  • Связь с Clean Architecture: принципы зависимости от внутренних слоев и защиты бизнес-логики.
  • Интеграция с микросервисами: использование DDD для проектирования независимых сервисов и командных границ.
Связь DDD с Agile, DevOps и Continuous Delivery:
Автор показывает, что Domain-Driven Design — это не просто набор паттернов для кода, а способ организовать разработку. DDD хорошо сочетается с Agile, потому что модель постоянно уточняется благодаря обратной связи от экспертов и пользователей.

Также разобрана связь DDD с Continuous Delivery и DevOps. Правильно выделенные контексты и автономные модели упрощают поставку изменений, снижают зависимость команд друг от друга и ускоряют развитие продукта.

Реализация на Java и Spring Boot:
Отдельная часть книги посвящена реализации разобранного кейса на Java и Spring Boot. Это особенно ценно для разработчиков, которые хотят увидеть, как идеи DDD воплощаются в структуре проекта, классах, сервисах, репозиториях и взаимодействии слоёв приложения.

Практическая реализация связывает теоретические концепции с реальным кодом и помогает понять, какие решения принимать при проектировании корпоративных Java-приложений.

Кому подойдет книга:
  • Java-разработчикам, которые хотят проектировать более выразительные и поддерживаемые доменные модели.
  • Backend-разработчикам, работающим со сложной бизнес-логикой и микросервисной архитектурой.
  • Software Architect и Tech Lead, которым нужно определять границы систем, сервисов и команд.
  • Системным и бизнес-аналитикам, участвующим в исследовании предметной области и формировании требований.
  • Product Owner и менеджерам разработки, которые хотят улучшить взаимодействие между бизнесом и технической командой.
Что вы получите после изучения:
  • Понимание принципов Domain-Driven Design и его роли в разработке сложных систем.
  • Навык выделения поддоменов, ограниченных контекстов и контекстных карт.
  • Умение применять Event Storming, Domain Storytelling, User Story Mapping и Example Mapping.
  • Знание тактических паттернов DDD и понимание, когда их использовать.
  • Представление о связи DDD с микросервисами, Agile, DevOps и Continuous Delivery.
  • Практический пример реализации доменной модели на Java и Spring Boot.
Почему стоит изучить эту книгу:
Книга рассчитана на тех, кто хочет не просто выучить термины DDD, а применять Domain-Driven Design в реальных проектах. В ней собраны стратегическое моделирование, тактические паттерны, работа с бизнес-экспертами и практическая реализация на Java.

«Практический Domain-Driven Design на примерах» помогает навести порядок в хаотичной бизнес-логике и разрозненных требованиях. В результате получается понятная модель с чёткими границами ответственности и архитектура, построенная вокруг предметной области.

Для кого подойдёт:
  • Разработчикам, которые знают теорию DDD, но не понимают, как применить её в рабочем проекте
  • Командам, которые переходят с монолита на микросервисы и ищут правильные границы сервисов
  • Архитекторам корпоративных систем со сложными бизнес-правилами, например в финтехе и кредитовании
  • Аналитикам, которые проводят воркшопы с бизнесом и хотят освоить Event Storming и Domain Storytelling
  • Тимлидам, которые хотят снизить связанность между командами и ускорить поставку изменений
Что получите:
  • Сквозной разбор кейса ипотечного кредитования от исследования домена до кода
  • Набор техник для совместного моделирования с экспертами предметной области
  • Понятные критерии выбора границ ограниченных контекстов и микросервисов
  • Наглядное применение тактических паттернов DDD в Java и Spring Boot
  • Упражнения, на которых можно отработать подход перед использованием в своих проектах

Подробнее:
Скрытое содержимое доступно для зарегистрированных пользователей!

Скачать:
 

Похожие темы