# Architecture Decisions Каталог **decisions/** содержит архитектурные решения (ADR — Architecture Decision Record), принятые во время разработки подсистемы **Market Intelligence**. В отличие от технической документации, ADR отвечают не на вопрос: > **Что реализовано?** а на вопрос: > **Почему архитектура построена именно так?** Каждое решение принимается только после возникновения реальной инженерной необходимости. Создание ADR "на будущее" не допускается. --- # Иерархия архитектурных решений Архитектурные решения разделены на три уровня. ```text Философия разработки ↓ Правила разработки ↓ Архитектурные ограничения ``` Каждый следующий уровень основывается на предыдущем. --- # Level 1 — Философия разработки Данные решения определяют общий подход к развитию платформы. | Decision | Назначение | |----------|------------| | 001 | Architecture First | | 002 | Build Lifecycle | --- ## Основная идея Сначала проектируется архитектура. Затем архитектура развивается небольшими завершёнными Build. --- # Level 2 — Правила разработки Данные решения определяют инженерный процесс разработки. | Decision | Назначение | |----------|------------| | 003 | Domain Review | | 004 | No Existing Code Assumptions | | 005 | Human Readable Comments | | 007 | Documentation Is Code | --- ## Основная идея Каждый Build проходит обязательные проверки качества. Разработка ведётся только на основе существующего кода проекта. Комментарии объясняют архитектурный смысл. Документация развивается одновременно с кодом. --- # Level 3 — Архитектурные ограничения Данные решения определяют фундаментальные ограничения архитектуры платформы. | Decision | Назначение | |----------|------------| | 006 | Immutable Engine Contract | --- ## Основная идея Все аналитические движки используют единый неизменяемый контракт результатов. --- # Правила создания новых Decision Новый ADR создаётся только при выполнении следующих условий: - возникла реальная инженерная проблема; - принято архитектурное решение, влияющее на развитие платформы; - решение невозможно корректно описать только комментариями в коде; - решение будет полезно при дальнейшем сопровождении проекта. Создание ADR "на всякий случай" запрещается. --- # Жизненный цикл ADR Каждый Architecture Decision проходит одинаковый цикл. ```text Проблема ↓ Анализ вариантов ↓ Принятие решения ↓ Документирование ↓ Использование в проекте ``` --- # Главный принцип Architecture Decision Record являются частью архитектуры Dzentra. Они сохраняют инженерные знания проекта и позволяют развивать платформу последовательно даже спустя годы после принятия первоначальных решений.