Files

Правила SLM

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

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

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

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

Код правила

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 классифицирует правило о группировке, а сама группа остаётся необязательной частью слоя.

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

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