Блок 3 · Урок 5 из 5 · ≈ 9 минут · цель: понять, зачем окупается глубина

Рычаг и локальность

Leverage and locality

Главная мысль: глубокий модуль окупается дважды - дает вызывающему коду рычаг и держит изменения локально.

Рычаг: один интерфейс дает много поведения.

Локальность: менять можно в одном месте.

Зачем это вам

Когда агент предлагает рефакторинг, важно понимать, чем он должен окупиться. “Стало аккуратнее” - слабый критерий. Сильнее спросить: появился ли рычаг для callers и стала ли будущая правка локальнее?

Так вы принимаете архитектурную работу через результат: меньше знания снаружи, меньше мест для изменения, больше поведения за понятным интерфейсом.

Суть

Рычаг (leverage) означает, что один простой интерфейс позволяет вызывающему коду получить много готового поведения: нормализацию, проверки, ошибки, интеграции, кэширование или fallback.

Локальность (locality) означает, что знание и изменения концентрируются рядом. Баг в правилах исправляется в одном модуле, а не в пяти формах, двух API и трех тестах.

Если модуль не дает ни рычага, ни локальности, он может быть просто структурным шумом. Если дает оба - он начинает реально снижать сложность.

Аналогия

Хороший модуль похож на розетку. Пользователь знает простой интерфейс, а внутри спрятаны проводка, автоматы и правила безопасности. Рычаг - можно подключать много устройств. Локальность - проблему с проводкой чинят в щитке, а не в каждом приборе.

Запомните одно

Глубина полезна, когда она дает рычаг callers и локальность maintainers: проще использовать, проще менять.

Фраза агента → что он имеет в виду

«Callers станут проще»
Модуль берет на себя поведение, которое раньше должен был знать внешний код.
«Правка будет локальной»
Изменение правила потребует редактировать одно место, а не цепочку вызовов.
«Проверим через публичный интерфейс»
Тесты будут защищать рычаг модуля, не замораживая его внутреннее устройство.

Мини-словарь

Leverage
Рычаг: много полезного поведения за малым знанием об интерфейсе.
Locality
Локальность: знание и изменения находятся рядом, а не размазаны по системе.

Проверьте себя

Что показывает, что модуль дает локальность?

Связанные материалы

Основной источник