54 lines
2.8 KiB
Markdown
54 lines
2.8 KiB
Markdown
# Frontend Shared Boundary Cleanup
|
||
|
||
Дата: 2026-06-23
|
||
Статус: спецификация
|
||
|
||
## Контекст
|
||
|
||
FSD-миграция уже убрала большую часть legacy-imports, но после крупного рефакторинга обычно остаются
|
||
тонкие границы, которые сложно заметить без отдельного аудита: слишком широкий `shared` public API,
|
||
дублирующие экспортные точки, и отдельные cross-layer или cross-entity dependencies, которые формально
|
||
работают, но ухудшают архитектурную ясность.
|
||
|
||
Эта фича нужна, чтобы сузить shared/public surface и убрать архитектурные серые зоны без изменения
|
||
поведения экранов.
|
||
|
||
## Цель
|
||
|
||
Сделать frontend layer boundaries более явными: shared должен экспортировать только truly shared
|
||
поверхность, а доменные сущности и виджеты должны общаться через свои public entrypoints.
|
||
|
||
## Требования
|
||
|
||
### 1. Сузить shared public API
|
||
|
||
`apps/frontend/src/shared/api` должен содержать только то, что действительно используется как shared
|
||
инфраструктура. Доменная поверхность должна быть разнесена по своим entity API/entrypoints.
|
||
|
||
### 2. Устранить boundary ambiguity
|
||
|
||
Любые архитектурно сомнительные cross-entity или cross-widget зависимости должны либо быть убраны,
|
||
либо явно перенесены на public barrel entrypoints.
|
||
|
||
### 3. Сохранить runtime behavior
|
||
|
||
Изменения должны быть ограничены реорганизацией импортов и export boundaries. Бизнес-логика и UI
|
||
поведение не меняются.
|
||
|
||
### 4. Зафиксировать public API правила
|
||
|
||
Фича должна завершиться с понятным описанием того, что считается public API каждого frontend слоя.
|
||
|
||
## Ограничения
|
||
|
||
- Не выполнять UI redesign.
|
||
- Не менять backend contracts.
|
||
- Не переписывать feature logic вне boundary cleanup.
|
||
|
||
## Критерии приемки
|
||
|
||
- Shared API surface стал уже и понятнее, чем до фичи.
|
||
- Cross-layer / cross-entity зависимости используют public barrels или удалены.
|
||
- Описание public API слоёв frontend обновлено в docs.
|
||
- Поведение UI и API-контракты не изменились.
|