Справочник
Чек-лист глубокого модуля
Быстрая проверка перед рефакторингом, ревью или задачей для AI-агента.
Проверочные вопросы
- Можно ли объяснить интерфейс за одну минуту (Can the interface be explained in one minute)? Если объяснение требует пройти по внутренним шагам, интерфейс уже рассказывает слишком много.
- Скрывает ли модуль важное проектное решение (Does the module hide an important design decision)? Например, формат данных, валидацию, порядок вызовов или логику повторов (retry logic).
- Получает ли вызывающий код много поведения за небольшое знание интерфейса (Does the caller get lots of behavior for little interface knowledge)? Вызывающий код должен знать мало, а получать много готового поведения.
- Расположится ли сложность по вызывающему коду после удаления модуля (If the module is deleted, will complexity spread across callers)? Это тест удаления (deletion test).
- Можно ли тестировать поведение через публичный интерфейс (Can behavior be tested through the public interface)? Тестируйте наблюдаемое поведение, а не приватные шаги.
- Есть ли настоящая причина для шва и адаптера (Is there a real reason for a seam and adapter)? Шов нужен, когда поведение действительно меняется.
- Не повторяет ли структура порядок выполнения (Does the structure avoid merely mirroring execution order)? Хорошая структура отражает скрытые решения и устойчивые границы.
Как читать результат
Чем больше ответов «да», тем выше шанс, что модуль глубокий. Если ответы в основном «нет», новый файл мог только увеличить поверхность знания.