Architecture Decision Records¶
Проектные решения записываются один раз вместе с обоснованием, вместо того чтобы обсуждаться заново на каждом ревью. Если изменение противоречит одному из них, обновлять надо именно ADR.
Сами записи живут в репозитории, рядом с кодом, который описывают, — в
docs/adr/. Это
рабочие документы на русском языке, и они остаются в репозитории, а не
дублируются здесь, чтобы решение и реализующий его код двигались вместе.
Записи¶
| ADR | Тема | Что решает |
|---|---|---|
| 001 | Wire-типы DAP | генерировать типы протокола из схемы, а не писать руками |
| 002 | Транспорт DAP, кодек и корреляция запросов | stdio и TCP, кадрирование Content-Length, сопоставление ответов с запросами |
| 003 | Модель состояния Debugger Core | редьюсер команд и событий, отбрасывание устаревших ответов |
| 004 | GUI framework | egui и вытекающие ограничения, включая виртуализацию строк |
| 005 | Source frontend protocol и IPC | граница с редактором, Unix-сокет, снимок по hello |
| 006 | Дерево переменных | ленивая загрузка, пагинация, кэш в пределах поколения остановки |
| 007 | Подъём окна на остановке | один подъём на поколение остановки и чем это оплачено |
| 008 | Нативный транспорт PHP/Xdebug | собственный DBGp-адаптер вместо зависимости от моста на Node |
| 009 | Визуальный слой | палитра, плотность, шрифты и пороги контраста, проверяемые тестами |
Как они соотносятся с этим сайтом¶
Несколько страниц здесь излагают вывод ADR без его обоснования:
| Страница | Связанные ADR |
|---|---|
| Модель DAP | 001, 002, 003, 006, 008 |
| IPC | 005, 007 |
| Архитектура | 003, 004 |
| Переменные | 006 |
| Интерфейс отладчика | 004, 009 |
| Языки → PHP | 008 |
Читайте ADR, когда нужно знать почему и когда вместе с решением нужны отвергнутые альтернативы.