Forge
markdowndeeb25a2
1# ADR 0009: Strangler-миграция и когда допускаются отклонения от политики
2
3**Статус:** Accepted
4**Дата:** 2026-04-02
5## Связанные ADR
6
7### Вне ADR
8
9| Документ | Роль |
10|----------|------|
11| [architecture-migration.md](../architecture-migration.md) | architecture migration |
12| [architecture-policy.md](../architecture-policy.md) | навигатор |
13
14---
15## Контекст
16
17Кодовая база развивается долго; полная перелопатка под новые правила недопустима по стоимости. Вместе с тем нужны ясные правила для прототипов и merge в основную ветку.
18
19## Решение
20
21### Миграция
22
23- **Новый код** — сразу по текущей архитектурной политике и ADR.
24- **Старый код** в монолитном ViewModel — правим при доработке фичи или при явном рефакторинге; **полный перенос не обязателен** по искусственному дедлайну (strangler).
25
26### Отклонения
27
28Короткий прототип или spike — допускается упрощение. Перед merge в основную ветку либо приводим к политике, либо явно помечаем в PR и создаём задачу на вынос.
29
30## Последствия
31
32История main остаётся приемлемой для ревью; технический долг контролируется задачами, а не только устной договорённостью.
33
34## Отклонённые альтернативы
35
36- «Заморозить» рефакторинг до большого банга — отклонено в пользу постепенного strangler.
37
View only · write via MCP/CIDE