Фундаментальная книга Эрика Эванса, заложившая основы Domain-Driven Design. Рассматривает стратегические и тактические паттерны создания сложных программных систем через глубокое понимание предметной области. Ключевые концепции — единый язык (Ubiquitous Language), ограниченный контекст (Bounded Context), агрегаты, сущности и объекты-значения. Издательство «Вильямс», 2020, перевод В. Л. Бродового.
🧠 Ключевые идеи
Единый язык (Ubiquitous Language): общий словарь между разработчиками и экспертами предметной области — основа DDD; код должен отражать этот язык напрямую, без «перевода»
Ограниченный контекст (Bounded Context): каждая модель применима только в чётко очерченном контексте; попытка создать универсальную модель «на все случаи» ведёт к хаосу
Тактические паттерны: Entity (сущности с идентичностью), Value Object (объекты без идентичности), Aggregate (кластер объектов с корнем), Repository, Factory — строительные блоки модели предметной области
Стратегические паттерны: Bounded Context, Context Map, Anti-Corruption Layer — инструменты управления сложностью на уровне всей системы и интеграции нескольких моделей
Рефакторинг к более глубокому пониманию: модель должна эволюционировать по мере роста знаний о предметной области; прорывные рефакторинги — норма, а не исключение
💬 Важные цитаты
«Единый язык — это не просто глоссарий. Это живой язык, который использует вся команда — в разговорах, документах и коде»
«Сложность скрывается в сердце программного обеспечения»
«Программисты должны стремиться не просто к созданию рабочей системы, а к настоящему пониманию того, что они создают»