Каждый принцип проектирования, рассмотренный в этой главе — SRP, OCP, DRY, Высокая связность, Слабое зацепление — в конечном счёте сводится к двум измеримым свойствам модуля: связности и зацеплению. Связность измеряет, насколько тесно связаны элементы внутри модуля друг с другом. Зацепление измеряет, насколько сильно один модуль зависит от другого. Цель, сформулированная Ларри Константином в 1960-х и повторяемая каждым крупным авторитетом в области программной инженерии с тех пор: максимизировать связность и минимизировать зацепление. В этом уроке мы делаем эти концепции точными, классифицируем их типы, даём инструменты для измерения и показываем, как использовать их как навигационный инструмент при рефакторинге.