Блок 3 · Урок 4 из 5 · ≈ 8 минут · цель: распознавать обертки без глубины

Лишние классы и транзитные модули

Classitis and pass-through modules

Главная мысль: слой полезен только тогда, когда он скрывает решение или меняет уровень абстракции.

Pass-through: принимает и почти сразу передает дальше.

Опасность: много имен, мало смысла.

Зачем это вам

Агент может создать контроллер, сервис, менеджер, helper и adapter, потому что “так архитектурно”. Но если каждый слой только передает те же параметры дальше, система становится длиннее, а не понятнее.

Нужен простой фильтр: какой слой скрывает решение? Если никакой, возможно, мы видим classitis - размножение структур без уменьшения сложности.

Суть

Транзитный модуль (pass-through module) почти не добавляет поведения: принимает вызов, немного переименовывает параметры и отправляет дальше.

Classitis - привычка создавать классы, слои и обертки без достаточной глубины. В результате интерфейсов становится больше, а скрытого знания меньше не становится.

Слой оправдан, когда он скрывает политику, нормализует данные, управляет ошибками, защищает внешний код от провайдера или собирает несколько шагов в понятную операцию.

Аналогия

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

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

Каждый новый слой должен покупать что-то: скрытое знание, единый контракт, защиту от провайдера или локальность изменений.

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

«Добавлю service layer»
Спросите, какая политика будет жить в слое и станет ли вызывающий код проще.
«Этот метод просто делегирует»
Возможно, метод не несет глубины и только удлиняет путь понимания.
«Здесь слой защищает от API провайдера»
Это уже смысл: внешний код не должен знать детали чужого API.

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

Pass-through module
Транзитный модуль: прослойка, которая почти ничего не скрывает.
Classitis
Размножение классов и слоев без соответствующего уменьшения сложности.

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

Когда новый слой оправдан?

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

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