intermediate
Public versus private API
Expose narrow stable contracts и держите internal helpers private, чтобы refactors не становились breaking changes.
Публичный API модуля — экспорты, на которые могут опираться другие команды; остальное — детали реализации. Узкая публичная поверхность снижает риск breaking changes и удешевляет рефакторинг. В TypeScript и пакетных экосистемах barrel-файлы и export maps — инструменты политики, а не только удобства.
На интервью: опишите, как запрещаете импорт internal helpers. Упомяните semver, окна deprecation и когда ломать, а когда расширять контракт.
Типовые ошибки: экспорт всего из index; утечка internal types в публичных сигнатурах; рефакторинг helpers, уже широко импортированных.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Явные public entry points на пакет или папку.
- Internal symbols не экспортируются или private.
- Новые экспорты — в code review.
- Документируйте ожидания стабильности публичных контрактов.