intermediate
Module boundaries
Формируйте modules вокруг cohesive responsibilities, stable exports и clear ownership, чтобы callers не зависели от internals.
Модули упаковывают связные возможности за public API — index exports, явные entry points, скрытые internals. Callers на stable exports; internals рефакторите свободно при сохранении контракта. Feature folders и package boundaries снижают случайные imports через домены.
Циклические зависимости — запах границ; разрывайте interface или shared kernel выше.
На интервью: разделение tangled utils folder, импортируемого отовсюду.
Типовые ошибки: barrel re-export всего; доступ в `/internal`; god `common`.
Компромисс — строгие границы против удобных imports в быстром прототипе.
Чеклист:
- Явные public exports.
- Скрытые implementation files.
- Осознанный разрыв circular imports.