TGViewer
S0ER S0ER @softwareengineervlog · 10.4K subscribers
Post #792 2.69K
Конспект по монолитам, зацеплению и связности из "Monolith to Microservices":
- Single-process monolith – приложение которое разворачивается в одном цикле развертывания, как правило имеет один пакет развертывания и сильную связь внутри пакета
- modular monolith – приложение, которое имеет несколько модулей с четко разделенными границами и низким зацеплением модулей, но так же развертывается в рамках одного цикла развертывания
- distributed monolith – приложение которое состоит из нескольких сервисов, но развёртывается в едином цикле развертывания.

“Delivery contention” – проблема монолитов при которой слишком много разработчиков хотят работать над одним и тем же кодом проекта.
Но при этом монолиты гораздо проще разрабатывать, сопровождать, мониторить и развертывать.

Связность (cohesion) и зацепление (coupling) – Связность должна быть высокой, зацепление низким. В монолитах это часто не так.
Идея связности – код который имеет общую причину для изменения должен храниться в одно месте. В противном случае усиливается зацепление.

Зацепление реализации (Implementation coupling) – компонент А так связан с компонентом Б, что при изменении Б необходимо изменить А.

Временное зацепление (Temporal coupling) – это такое зацепление, которое возникает во время работы системы и зависит от порядка действий (их синхронности), например, такое зацепление возникает во время синхронных запросов в распределенных системах, на все время синхронизации компоненты становятся зацепленными.
Временное зацепление можно ослабить за счет кэширования или использования брокера сообщений.

Зацепление развертывание (Deployment coupling) – зацепление возникающих из-за единого цикла развертывания. Если изменения возникли в одном модуле, мы все равно должны повторно развернуть все модули, так как цикл развертывания един.
Решение Hot reload.

Доменное зацепление (Domain coupling) – зацепление между реальным (бизнес) доменом и реализацией сервисов. Если для решения бизнес-задачи нужно задействовать несколько сервисов (или микросервисов) они считаются доменно зацепленными.
Решается (по возможности) сокрытием информации. Чем меньше информации нужно для решения поставленной задачи, тем меньше зацепление.
#monolith
More from @softwareengineervlog
  1. Sep 3, 2026Google выпустила Gemini 3.8 Flash — новая быстрая модель уже обходит гигантов в кодинге. П…
  2. Sep 3, 2026Сейчас использую DeesSeek v4 Flash, на готовой кодовой базе решать стандартные таски из тр…
  3. Aug 6, 2026Полезное: разраб сделал интерактивный мануал, который по шагам показывает, что происходит…
  4. Aug 5, 2026Ты ненастоящий программист! Это происходит снова и снова, и каждый раз одинаково. Я начал…
  5. Jul 27, 2026Внимание, скам! Появился бот который выдает себя за бота моего канала. Я НИЧЕГО ЧЕРЕЗ БОТО…
  6. Jul 25, 2026У Сбера есть интересный whitepaper где он описывает технологию разработки продукта с помощ…
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 →