TGViewer
10 минут до кода 10 минут до кода @ten_minutes_to_code · 228 subscribers
Post #47 95
Языковой барьер в архитектуре: DDD как инструмент выживания

DDD (Domain-Driven Design) принято подавать как секретное учение с толстыми книгами, которые никто не дочитывает до конца. На деле концепция максимально утилитарна: сделать так, чтобы код перестал быть загадкой для бизнеса, а бизнес — для программиста. Это не попытка обмазаться абстракциями, а способ убрать “сломанный телефон” между теми, кто пишет код, и теми, кто на нем зарабатывает.

Домен в DDD — это не адрес сайта в строке браузера, а конкретная бизнес-область. В ритейле это товары и корзины, в финтехе — транзакции и счета. Основное правило: если бизнес называет сущность «продуктом», в коде должен быть Product. Не Item, не RawData, не Entity123. Это убирает лишнюю прослойку в голове, когда прилетает задача «реализовать скидку на продукт», и ты сразу понимаешь, о какой части системы идет речь.

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

Это и есть разделение контекстов (Bounded Contexts). Продавец и кладовщик говорят об одном «товаре», но оперируют разными данными. DDD учит не смешивать эти сущности в одну кучу, а разносить их по разным логическим блокам.

В коде это будут два разных класса Product, которые просто лежат в разных папках (например, в неймспейсах Sales и Warehouse). Каждая часть системы видит только те данные, которые ей реально нужны.

Проектирование на языке бизнеса напрямую влияет на чистоту реализации. Если нужно провести возврат, метод должен называться proceedRefund(), а не updateStatus(status_id=5). Код должен описывать бизнес-процесс, а не механическую смену цифр в базе данных. Когда архитектура прозрачна и соответствует логике домена, потребность в менеджере-переводчике отпадает. Вы начинаете читать код как спецификацию, где каждое действие имеет понятный физический смысл.

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

Поделитесь этим постом с коллегой, который до сих пор называет методы updateField1(). Поможем индустрии заговорить по-человечески! 🚀

Ставь 🔥, если всё разложилось по полочкам. А если остались вопросы по реализации или что-то звучит слишком абстрактно — пиши в комменты, обязательно разберем!

10МДК
  • 🔥 6
More from @ten_minutes_to_code
  1. May 28, 2026Первый сезон получился про путь “от пользователя к инженеру”. Именно эту картину мы весь с…
  2. May 28, 2026Когда я запускал этот канал, у меня была довольно простая идея: писать каждый день коротки…
  3. May 7, 2026Почему нормализация БД — это чистая логика, а не бюрократия На любом ongoing-проекте требо…
  4. May 3, 2026🤔 А где новые посты? Сори что вот так пропал без предупреждения, но я думал что справлюсь…
  5. Apr 29, 2026Почему HTTPS не спасет ваши секреты Замочек в адресной строке браузера — это мощное успоко…
  6. Apr 28, 2026Целостность данных против иллюзии атомарности Начинающий разработчик видит базу данных как…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →