TGViewer
Backend x Management Backend x Management @backendxmanagement · 84 subscribers
Post #49 197
Low Coupling, High Cohesion

Люблю такие принципы разработки, которые не перевести в лоб, и чтобы понять их надо будет прилично так пораскинуть мозгами и понять чем связность отличается от связности))
По русски лучшим переводом будет: "слабая связность, сильное зацепление", и это один из паттернов GRASP (General Responsibility Assignment Software Patterns) - которые скорее принципы, нежели паттерны и давайте их рассматривать в концепции принципов.

Принцип слабой связности - единица связности (может быть класс, может быть сервис/микросервис в зависимости от масштабов) должна иметь минимальное число зависимостей. На банальном примере: чтобы создать объект класса А, тебе не надо создавать других объектов или импортировать 100500 библиотек. На примере побольше: чтобы развернуть в инфре сервис А, тебе не надо ставить 10 других сервисов и поднимать 5 инфраструктурных узлов. То есть сам по себе твой объект уже красавчик, и ему не нужно много посторонней помощи, чтобы выполнять свои задачи.

Принцип сильного зацепления - для выполнения работы (бизнес-задачи, бизнес-проццесса) все нужные компоненты аллоцированы в одном юните (единице связности, раз уж мы ввели этот термин). Ну и как с low coupling тоже может варьироваться от класса - до сервиса. Чувствуете? Родным SOLID-ом повеяло)) На самом деле очень похоже на принцип Single Responsibility. Явным нарушением будет распределенный-монолит, когда для выполнения 1 метода надо пройти 10 микросервисов, так же нарушением будт просто монолит, потому что зацепление между его функциями слабое. Следованием же high cohesion будет кейс, когда ваш сервис принял пользовательский запрос (например с мобилки) и ему для исполнения запроса не надо ходить ни в какие другие сервисы (собственная БД не считается, она наша, родная). Но при этом внутри вашего сервиса нет левых методов, если он выполняет депозиты - то он не отвечает за in app notifications. Между этой логикой уже нет зацепления.

Такое настроение сегодня, делиться принципами разработки, хорошей пятницы)
  • 🔥 2
  • 👍 1
More from @backendxmanagement
  1. Sep 27, 2026Кейс-интервью в Авито (на тимлида) Я тут уже какое-то время прохожу собесы в Авито и если…
  2. Aug 17, 2026noCopy в Go Игрался я тут с атомарными переменными, что бы вспомнить синтаксис и посмотрет…
  3. Jul 31, 2026Многоуважаемый дядя Кент Бэк и его взгляд на то что происходит в IT Если у вас хорошо с ан…
  4. Jul 11, 2026Командная работа Переодически возвращаюсь к видосикам потрясающего человека Дмитрия Болдыр…
  5. Jun 16, 2026LLM для менеджерства Сейчас время веселья, угара и новых темок в плане разработки. Вышли н…
  6. Apr 17, 2026Podlodka PHP Crew #8. Неделя «Современный стек PHP-разработки» Я все еще тут в ПК и у нас…
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 →