Files
slm-design/docs/README.md
S. Gromov 691069af8e sync
2026-08-10 09:12:22 +03:00

4.7 KiB
Raw Blame History

layout, title, description, hero, features
layout title description hero features
home SLM Design Архитектура фронтенд-приложений с явным владением ответственностями
name text tagline image actions
SLM Design Архитектура владения ответственностями Сначала определяется ответственность и её владелец. Слои, группы, модули и сегменты выражают уже принятое архитектурное решение.
src alt
/logo.svg SLM Design
theme text link
brand Изучить архитектуру /architecture/
theme text link
alt Открыть правила /rules/registry
title details
Ответственность раньше структуры Модуль появляется из самостоятельной ответственности, а не из размера каталога, количества файлов или выбранного фреймворка.
title details
Явная структурная модель Слой определяет роль, группа классифицирует модули, модуль владеет ответственностью, сегмент организует реализацию.
title details
Проверяемые границы Публичные API, направление зависимостей и правила жизненного цикла делают архитектурное решение наблюдаемым и проверяемым.

SLM Design (Scoped Layered Module Design) — структурная архитектура фронтенд-приложений, основанная на явном владении ответственностями.

Архитектурное решение начинается не с папки или имени файла. Сначала определяется ответственность, затем её владелец, роль владельца в приложении и только после этого физическое размещение кода.

Основа

SLM использует четыре структурных понятия:

  1. Слой классифицирует код по архитектурной роли и ограничивает направление зависимостей.
  2. Группа помогает классифицировать модули внутри слоя, но ничего не реализует и ничем не владеет.
  3. Модуль владеет самостоятельной ответственностью, её публичным API, зависимостями, состоянием и жизненным циклом.
  4. Сегмент организует внутреннее содержимое одного модуля и не создаёт нового владельца.
Слой → [Группа*] → Модуль → [Сегмент*]

Знак * означает, что элементов может не быть или их может быть несколько. Группы могут быть вложены друг в друга внутри одного слоя. Сегменты всегда остаются внутри одного модуля.

Документация

Архитектура

Правила

Справочные материалы

Порядок принятия решения

  1. Сформулировать ответственность без упоминания папок, файлов и библиотек.
  2. Назначить одного владельца ответственности.
  3. Выбрать слой по роли владельца.
  4. Определить публичный контракт, зависимости, состояние и жизненный цикл.
  5. Организовать реализацию сегментами, если это упрощает навигацию.
  6. Представить принятое решение папками, файлами и публичными точками входа.