← [Раздел](README.md) · [Главная](../README.md)

# Архитектурный review (процесс)

## Цель

Освоить **профессиональный процесс** архитектурного review: когда инициировать, кто участвует, какие артефакты нужны, как фиксировать решения и не превращать review в бесконечный спор о технологиях.

## Предварительно

- [Lab 04 — Review](../12-praktikum/lab-04-review-arhitektury.md)
- [Антипаттерны](../11-patterns/anti-patterny-i-smells.md)

## Время

~80 минут

---

## Когда нужен review

| Триггер | Примеры |
|---------|---------|
| Новая система | Greenfield магазин, миграция в облако |
| Крупное изменение | Split монолита, новый регион |
| Риск | Платежи, PII, compliance |
| Инцидент | Post-incident architecture action items |
| Периодика | Quarterly health check |

Не нужен review на каждый bugfix — **scope** должен быть явным.

---

## Роли

| Роль | Ответственность |
|------|-----------------|
| **Author** | Архитектор/лид, готовит пакет |
| **Reviewers** | 2–4 инженера вне команды |
| **Facilitator** | Ведёт встречу, таймбокс |
| **Product** | Приоритеты NFR, бюджет |
| **Security** | Threat model, данные |
| **SRE/Platform** | Эксплуатация, SLO |

Author **не** фасилитирует — иначе давление на консенсус.

---

## Пакет документов (минимум)

```text
docs/architecture/
  01-context.md          # C4 L1–L2
  02-nfr.md              # Измеримые NFR
  03-adr/                # Ключевые решения
  04-threat-model-lite.md
  05-deployment-view.md  # k8s, сеть, окружения
  06-open-questions.md
```

За 48 часов до встречи — рассылка. Review «с ходу» на созвоне без материалов — формальность.

---

## ATAM-lite (упрощённый)

**Architecture Tradeoff Analysis Method** в сжатом виде:

1. **Сценарии** — top 5 user journeys + failure scenarios.
2. **Атрибуты качества** — performance, security, availability…
3. **Подход** — как архитектура достигает атрибутов.
4. **Trade-offs** — что жертвуем (cost vs latency).
5. **Риски** — sensitivity points, что сломается первым.
6. **Action items** — с владельцем и датой.

Не обязательно полный ATAM — достаточно таблицы trade-offs.

---

## Формат встречи (90 мин)

| Блок | Время |
|------|-------|
| Context + цели | 15 мин |
| Walkthrough диаграмм | 20 мин |
| NFR и gaps | 15 мин |
| Security / данные | 15 мин |
| Риски и smells | 15 мин |
| Решения и action items | 10 мин |

Запись: `review-notes.md` в репозитории, не только в чате.

---

## Шкала исходов

| Статус | Значение |
|--------|----------|
| **Approved** | Можно строить |
| **Approved with conditions** | P0 items до prod |
| **Major rework** | Пересмотр границ/данных |
| **Rejected** | Альтернативный подход |

Conditions — **конкретные** задачи в трекере, не «подумать ещё».

---

## Типичные споры и как их закрывать

| Спор | Разрешение |
|------|------------|
| Kafka vs Rabbit | Throughput, команда, ops burden → ADR |
| Монолит vs MS | Conway, scale, team size → ADR |
| Multi-region сейчас? | RTO/RPO + cost → product sign-off |
| «Слишком много JSON в логах» | NFR-S04 + sample log review |

Архитектор приносит **данные** (оценка cost, latency budget), не только мнение.

---

## Review после инцидента

Blameless postmortem → architecture actions:

```markdown
## AI-1: Circuit breaker на pay.example.com
Owner: @backend
Due: Sprint 12
Links: PM-2024-042
```

Связь инцидент → ADR → fitness function в CI.

---

## Антипаттерны процесса

| Плохо | Хорошо |
|-------|--------|
| Review в день релиза | За 2+ недели до prod |
| Только презентация | Документы + async comments |
| Нет security | Чеклист OWASP / STRIDE lite |
| Забытые action items | Тикеты с due date |

---

## Самопроверка

1. Какие документы в минимальном пакете review?
2. Что такое ATAM-lite в одном предложении?
3. Чем «Approved with conditions» отличается от «Approved»?
4. Зачем facilitator не из authors?

---

## Дальше

→ [Миграции и эволюция](migracii-i-evoluciya.md)  
← [README Pro](README.md)
