3.3 KiB
title, status, normative
| title | status | normative |
|---|---|---|
| Сегменты | draft | true |
Сегменты
Segment группирует внутренние файлы module по устойчивой роли. Segment не является самостоятельным layer или module.
Базовые segments
| Segment | Роль |
|---|---|
ui/ |
Presentation components текущего module |
parts/ |
Nested modules текущего module |
hooks/ |
Framework hooks текущей ответственности |
providers/ |
Provider implementations текущего module |
stores/ |
Concrete state runtime текущего owner |
services/ |
Scenario operations и service objects |
mappers/ |
Transformation на границе ответственности |
types/ |
Types текущего module |
styles/ |
Styles текущего module |
lib/ |
Небольшие internal utilities |
config/ |
Constants и configuration текущего module |
tests/ |
Tests публичной границы или составного runtime |
Правила
SLM-SEG-001 - МОЖЕТ. Module может использовать любые необходимые segments и не обязан создавать остальные.
SLM-SEG-002 - ЗАПРЕЩЕНО. Нельзя создавать полный симметричный набор segments как scaffold без реального содержимого.
SLM-SEG-003 - ОБЯЗАН. Если файл помещён в segment, роль segment должна соответствовать фактической роли файла, а не только его расширению или имени. Файлы могут оставаться в корне небольшого module.
SLM-SEG-004 - ЗАПРЕЩЕНО. Segment не имеет внешнего public API независимо от module owner.
Запрет deep import в segment другого module определяется base-правилом SLM-API-002.
UI и Parts
ui/ содержит presentation components без самостоятельного architectural ownership.
parts/ содержит nested modules с собственной внутренней структурой и локальным public boundary.
SLM-SEG-006 - ОБЯЗАН. Сущность с самостоятельной ответственностью, внешними архитектурными dependencies или nested modules должна размещаться в parts, а не маскироваться как плоский component. Локальные presentation hooks/state сами по себе не требуют parts.
Hooks
SLM-SEG-007 - ОБЯЗАН. Hook принадлежит тому module, чью ответственность и runtime он выражает.
Примеры:
- product hook - владеющий product module;
- page-local hook - владеющая page composition;
- reusable technical hook - соответствующий infra module;
- product-agnostic UI hook - владеющий UI module.
Segments являются только внутренними организационными ролями и не вводят дополнительных архитектурных zones.