Отчет об архитектурных решениях¶
ADR фиксирует почему было выбрано определённое техническое решение.
Создавайте ADR, когда решение:
- затрагивает несколько систем;
- требует выбора между несколькими жизнеспособными вариантами;
- будет трудно понять только по итоговому коду.
Не создавайте ADR для обратимой локальной детали, стандартного рефакторинга или выбора, полностью заданного существующими правилами проекта.
Жизненный цикл¶
stateDiagram-v2
[*] --> Предложено
Предложено --> Принято
Предложено --> Отклонено
Принято --> Заменено
Принято --> Устарело
Заменено --> [*]
Отклонено --> [*] | Статус | Значение |
|---|---|
| Предложено | Решение открыто для обсуждения. |
| Принято | Подход обязателен для новых изменений. |
| Отклонено | Рассмотренный подход не выбран; причина сохранена. |
| Заменено | Действует более новое ADR, указанное в документе. |
| Устарело | Контекст исчез, решение больше не применяется. |
ADR-[№ XXX] · [Краткое название решения]¶
Контекст¶
Какая ситуация требует решения? Какие силы, ограничения, известные риски и неизвестные важны? Опишите проблему без преждевременного выбора реализации.
Рассмотренные варианты¶
Вариант A · [Название]¶
Краткое описание подхода.
Преимущества
- …
Недостатки и риски
- …
Вариант B · [Название]¶
Краткое описание подхода.
Преимущества
- …
Недостатки и риски
- …
Решение¶
Какой вариант выбран? Почему он лучше соответствует критериям в текущем контексте? Какие компромиссы приняты осознанно?
Проверка¶
Как убедиться, что решение реализовано правильно? Какие тесты, наблюдения или метрики подтверждают результат?
Условия пересмотра¶
При каких наблюдаемых изменениях ADR нужно открыть заново: масштаб, производительность, изменение требований?
Связанные материалы¶
- Заменяет: ADR-[№ XXX] или "нет"
- Дополняет: ADR-[№ XXX] или "нет"
История¶
| Дата | Статус | Автор | Причина изменения |
|---|---|---|---|
| ГГГГ-ММ-ДД | Предложено | [имя] | Создано решение |