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.