3.8 KiB
title, status, normative
| title | status | normative |
|---|---|---|
| Архитектурная модель | draft | true |
Архитектурная модель
Структура приложения
SLM-ARCH-001 - ОБЯЗАН. SLM-приложение должно разделять код по ответственности между следующими слоями:
src/
├── app/
├── compositions/
├── domains/
├── infra/
├── ui/
└── shared/
Не каждый слой обязан содержать код в минимальном приложении, но роль каждого существующего модуля должна соответствовать одному владельцу.
Группы ответственности
| Группа | Слои | Ответственность |
|---|---|---|
| Framework composition | app, compositions |
Подключение к framework и сборка application flows |
| Product | domains |
Продуктовые модели, сценарии и runtime surfaces |
| Technical | infra, ui |
Технические capabilities и универсальный UI |
| Foundation | shared |
Детерминированный общий фундамент |
Верхнеуровневое направление
app → compositions | shared
compositions → compositions | domains | infra | ui | shared
domains → infra | ui | shared согласно правилам внутренних зон
infra → infra | shared
ui → ui | shared
shared -/→ остальные SLM-слои
Схема описывает imports между SLM-слоями проекта. Framework APIs и external packages регулируются ответственностью импортирующего слоя и не показаны как SLM-слои.
SLM-ARCH-002 - ОБЯЗАН. Верхнеуровневое направление зависимостей между SLM-слоями должно соблюдаться для runtime imports и type imports, кроме явно описанных исключений.
SLM-ARCH-003 - ЗАПРЕЩЕНО. Нижний слой не может импортировать app или compositions.
SLM-ARCH-004 - ЗАПРЕЩЕНО. infra, ui и shared не могут владеть product graph или выступать service locator для domain runtimes.
Путь данных
app
→ composition
→ domain runtime surface
→ domain business scenario
→ business-owned port
→ domain adapter
→ infra / SDK / storage / external source
SLM-ARCH-005 - ОБЯЗАН. Каждый переход в цепочке продуктовых данных должен сохранять ownership: framework связывает, domain определяет semantics, adapter интегрирует, infra предоставляет technical capability.
Путь UI
app route
→ page/layout composition
→ domain UI и composition UI
→ universal UI
→ shared styles/resources
Владение multi-domain и domain UI определяется правилами SLM-CMP-006 - SLM-CMP-007 и SLM-FRM-013.
Внутренняя модель domain
domain client/server assembly
→ own business factory
→ own adapters
domain framework surface
→ own DomainRuntime через runtime access boundary
composition
→ создаёт несколько domain runtimes
→ передаёт готовые capabilities
Внутренняя assembly одного domain и cross-domain graph разделены правилами Client и server assembly и Compositions.