🎯 Немного о DDD, сложности и странных комментариях Видимо, наследие Otus меня не отпускает.
Сегодня получил обратную связь на свой открытый урок по DDD, записанный больше года назад:
«Прослушал половину видеоролика и ни разу не услышал главного слова в DDD — “модель”. Автор путает essential complexity и accidental complexity. Essential complexity невозможно уменьшить (автор ошибся). Возникает вопрос: как DDD вообще может помочь бороться со сложностью? Ответа нет.»
Формально — человек прав. Я действительно не произносил слово “модель” и не читал лекцию по Бруксу. Но если чуть отойти от формальной логики и посмотреть на суть — всё становится интереснее.
⸻
Для меня DDD — это не про построение моделей, а про коммуникацию. Про умение выстроить совместное понимание между командами — бизнесом, аналитикой и разработкой. Это коллаборативная техника, которая помогает людям наконец начать говорить на одном языке. Вот в этом и есть настоящая ценность DDD.
⸻
Теперь про сложность. Да, essential complexity — исходную сложность домена — в абсолютных величинах не уменьшить. Разве что вы перепишете законы, регламенты и бизнес-процессы. Но вот accidental complexity — ту, что мы сами добавляем из-за непонимания предметной области — вот её DDD и помогает убирать.
Причём не “в теории”, а относительно конкретной команды, которая благодаря совместному языку лучше понимает, что она делает и зачем.
⸻
💬 Поэтому я по-прежнему считаю, что DDD снижает сложность, пусть и не абсолютную, а коммуникационную и когнитивную. А это, если честно, сложность посерьёзнее любой технической.
Готов подискутировать — особенно с теми, кто до сих пор верит, что DDD — это про рисование UML и словарь терминов. 😉