Архитектура SLM
Статус: рабочий черновик. Документы в этой папке не являются спецификацией.
SLM задаёт структурную основу приложения: слои, модули, публичные границы, зависимости, фасеты сред выполнения и владение жизненным циклом.
Область SLM
Черновик описывает слои, модули, группы, сегменты, компоненты, публичный API, зависимости и владение жизненным циклом ресурсов.
SLM не задаёт обязательную внутреннюю форму модуля, обязательный поток данных, правила монорепозиториев или полный файловый стайлгайд. Форма модуля следует его ответственности и реальным потребителям.
Виды утверждений
- Определение нормативно задаёт смысл архитектурного термина, но не получает код правила.
- Правило задаёт блокирующий архитектурный инвариант и объявляется в каноническом реестре.
- Рекомендация помогает принять решение, но не делает архитектуру невалидной.
- Пример иллюстрирует модель и не задаёт обязательную структуру.
Нормативные определения находятся в терминологии. Канонический набор требований находится в реестре правил SLM. Формат и требования к правилам описаны отдельно в разделе Правила SLM.
Остальные документы объясняют и иллюстрируют модель, но не владеют точными формулировками определений и правил.
Основная идея
Модуль является основной архитектурной единицей SLM. Слой задаёт его роль и направление зависимостей: модули слоя domains владеют предметными ответственностями на тех же основаниях, что и остальные модули. Группа помогает навигации, сегмент организует внутреннее содержимое, а компонент всегда принадлежит модулю.
SLM требует отдельную папку и единый логический публичный API модуля. По умолчанию API представлен корневым index; при необходимости модуль добавляет environment-фасеты client, browser и server. Внутренняя файловая форма модулей, сегментов и компонентов определяется стайлгайдом проекта.