Перейти к содержанию

Правила SLM ​

Правило SLM задаёт один блокирующий архитектурный инвариант. Точные формулировки правил находятся только в едином реестре; архитектурные главы объясняют модель и ссылаются на соответствующие коды.

Виды утверждений ​

  • Определение задаёт нормативный смысл термина.
  • Правило задаёт блокирующее требование.
  • Рекомендация помогает принять решение, но не является обязательной.
  • Пример показывает один из вариантов реализации и не задаёт каркас проекта.

Определения собраны в терминологии. Определение может быть обязательным для толкования правил, но не получает отдельный код.

Код правила ​

text
SLM-{group}-{class}{number}
ЧастьЗначение
SLMПринадлежность архитектуре SLM
groupПредмет правила
classСпособ окончательной проверки: A или R
numberГлобально уникальный трёхзначный номер

Пример: SLM-MODULE-A004.

Способ проверки ​

Автоматические правила (A) ​

Всё требование можно однозначно проверить программно по структуре проекта, публичным путям и графу импортов. Нарушение блокирует автоматическую проверку.

Правила для ревью (R) ​

Для окончательного решения требуется понимание ответственности, владельца, потребителей или области жизни. Инструмент может найти подозрительный код, но не заменяет архитектурное решение.

Разделы правил ​

КодПредмет
LAYERРоль слоя и направление зависимостей
DOMAINВладение доменными сценариями, контрактами, внешними данными и ошибками
MODULEОтветственность, владение, публичная граница и внутренняя структура модуля
DEPENDENCYГраф зависимостей модулей
GROUPНавигационная группировка модулей
SEGMENTВнутренняя организация модуля
NESTED_MODULEДоступ к вложенному модулю
LIFECYCLEВладение долгоживущими ресурсами
ENVIRONMENTСовместимость публичных фасетов со средами выполнения

Раздел правила не создаёт одноимённую главу или дополнительный уровень архитектуры. Например, GROUP классифицирует правило о группировке, а сама группа остаётся необязательной частью слоя.

Требования к реестру ​

  • Одно правило защищает один инвариант.
  • Точная формулировка не повторяется в тематических документах.
  • Название кратко обозначает предмет, а описание полностью формулирует требование.
  • Рекомендации, обоснования и примеры не входят в формулировку правила.
  • Один инвариант не получает отдельные автоматическую и ручную копии.
  • Номер правила не обозначает важность и не переиспользуется после удаления.

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