feat: add market data architecture and complete migration through build 039

This commit is contained in:
2026-07-14 09:58:16 +03:00
parent 26deb861bc
commit a996f2f797
443 changed files with 80452 additions and 1335 deletions

View File

@@ -0,0 +1,179 @@
# Decision 007 — Documentation Is Code
## Статус
**Accepted**
---
# Дата принятия
Принято во время разработки Stage-08.2 **Engine Runtime Contract**.
---
# Контекст
Во время разработки первых компонентов Market Intelligence стало очевидно, что исходный код и документация развиваются одновременно.
Если документация обновляется позже кода, очень быстро возникает расхождение между:
- архитектурой;
- реализацией;
- инженерными решениями;
- фактическим состоянием проекта.
В результате документация перестаёт отражать реальное устройство системы.
---
# Проблема
Во многих проектах документация рассматривается как дополнительный материал.
Обычно процесс выглядит следующим образом:
```text
Написание кода
Код работает
Документацию обновим позже
```
На практике "позже" часто не наступает.
Через некоторое время:
- документация устаревает;
- архитектурные решения теряются;
- новые разработчики вынуждены изучать проект только по исходному коду.
---
# Рассмотренные варианты
## Вариант 1
Документация обновляется по мере возможности.
### Преимущества
- меньше работы во время реализации.
### Недостатки
- документация быстро устаревает;
- теряются архитектурные решения;
- сложно понять историю развития проекта.
---
## Вариант 2
Документация обновляется одновременно с кодом.
Build считается завершённым только после обновления всей связанной документации.
### Преимущества
- документация всегда соответствует проекту;
- архитектурные решения сохраняются;
- упрощается сопровождение;
- сохраняется история развития платформы;
- новые разработчики быстрее понимают проект.
### Недостатки
- требуется дополнительное время на оформление документации.
---
# Принятое решение
Документация является частью исходного кода проекта.
Каждый Build считается завершённым только после обновления всей связанной документации.
Документация имеет такую же обязательность, как Compile Check или Architecture Review.
---
# Обязательная документация Build
После завершения каждого Build обязательно обновляются все связанные документы.
Например:
- Build Document;
- Build History;
- Architecture Decisions (при необходимости);
- Runtime Contract (при необходимости);
- Development Process (при необходимости);
- README соответствующего раздела (при необходимости).
---
# Правило завершения Build
Build считается завершённым только после прохождения полного цикла:
```text
Architecture Design
Implementation
Compile Check
Architecture Review
Domain Review
Documentation Update
User Confirmation
Build Closed
```
Если документация не обновлена, Build остаётся незавершённым.
---
# Причины принятия решения
Использование данного подхода позволяет:
- сохранять актуальность документации;
- фиксировать архитектурные решения;
- поддерживать единый источник знаний;
- облегчать сопровождение проекта;
- исключать расхождение между кодом и документацией.
---
# Последствия
После принятия настоящего решения:
- документация развивается одновременно с кодом;
- архитектурные изменения всегда фиксируются;
- история развития проекта полностью сохраняется;
- Build не может считаться завершённым без обновления документации.
---
# Связанные документы
- `development_process.md`
- `build_history.md`
- `architecture_principles.md`
- `runtime_contract.md`
---
# История изменений
| Версия | Изменение |
|---------|-----------|
| 1.0 | Первое принятие архитектурного решения. |