Разбор книги «Building Evolutionary Architectures» — Neal Ford, Rebecca Parsons, Patrick Kua. Формат: по главе на секцию — какую проблему решает, ключевые мысли, схема.

Главный тезис: три столпа
Эволюционная архитектура поддерживает направляемые инкрементальные изменения по нескольким измерениям. Ключевое слово — «направляемые»: система меняется не как придётся, а под контролем автоматических проверок.
Три столпа пересекаются и работают только вместе:
| Столп | Что даёт |
|---|---|
| Инкрементальные изменения | итеративная сборка и развёртывание |
| Функции пригодности | защита архитектурных характеристик |
| Правильная связность | архитектурные кванты и границы |

Глава 1. Защита от деградации через многомерность
Какую проблему решает. Традиционное долгосрочное планирование невозможно. Система деградирует (bit rot), потому что экосистема вокруг неё постоянно меняется: фреймворки, бизнес-требования, масштаб.
Ключевые мысли:
- «Эволюционируемость» (evolvability) — новая главная архитектурная характеристика;
- это мета-характеристика: оболочка, которая защищает остальные свойства системы;
- архитектура должна учитывать фактор времени (Time) как полноправный элемент.

Глава 2. Функции пригодности как иммунная система
Какую проблему решает. Как объективно измерить и защитить критические характеристики (скорость, безопасность, отказоустойчивость), когда сотни разработчиков ежедневно вносят изменения.
Ключевые мысли:
- объективная оценка целостности системы — термин пришёл из эволюционных вычислений;
- категоризация по двум осям: атомарные vs холистические, триггерные vs непрерывные;
- ранняя идентификация метрик для каждого «-ility».

Глава 3. Инженерия инкрементальных изменений
Какую проблему решает. Высокая стоимость и фатальный риск внедрения больших изменений. Страх бизнеса перед деплоем и паралич релизов.
Ключевые мысли:
- Минимальный размер изменений (small increments) сужает радиус ошибки.
- Разработка, управляемая гипотезами (hypothesis-driven development).
- Полная автоматизация рутины через Continuous Delivery.

Глава 4. Анатомия архитектурного кванта
Какую проблему решает. Случайная связность (coupling) — изменение в одном месте ломает всю систему из-за скрытых зависимостей.
Ключевые мысли:
- архитектурный квант — минимальная, независимо развёртываемая единица системы с высокой связностью внутри;
- квант всегда включает базу данных: транзакционные границы = сильнейшее сцепление.
Если база данных общая — это больше не квант.

Глава 4. Диагностическая матрица стилей
Какую проблему решает. Выбор ложного архитектурного шаблона, который сопротивляется изменениям и не соответствует динамике бизнеса (например, Big Ball of Mud).
Ключевая мысль. Разные стили имеют разный встроенный размер кванта. Чем меньше квант, тем быстрее и дешевле изменения, но выше затраты на управление инфраструктурой.
| Характеристика | Монолит | SOA | Микросервисы | Serverless |
|---|---|---|---|---|
| Размер кванта | Large | Medium | Small | Micro |
| Уровень связности | High | High | Low | Low |
| Инкрементальные изменения | Hard | Hard | Easy | Easy |
| Функции пригодности | Hard | Medium | Easy | Easy |

Глава 5. Эволюция данных на живой системе
Какую проблему решает. Иллюзия, что «схемы баз данных живут вечно». БД часто становится «бутылочным горлышком» и точкой жёсткой интеграции, блокирующей рефакторинг кода.
Ключевые мысли:
- данные обязаны эволюционировать синхронно с кодом;
- отказ от практики Shared Database Integration;
- паттерн Expand/Contract для миграции без даунтайма.

Глава 6. Механика построения эволюции
Какую проблему решает. Отсутствие чёткого, воспроизводимого алгоритма при проектировании новой системы или рефакторинге огромного legacy.
Ключевые мысли:
- строгий 3-шаговый алгоритм переводит эволюционную архитектуру из абстракции в практику: идентификация измерений → определение функций пригодности → автоматизация в пайплайне;
- изоляция старого кода критична для выживания нового — между легаси и новыми сервисами ставится антикоррупционный слой.

Глава 6. Руководящие принципы и маршрутизация
Какую проблему решает. Принятие «необратимых» архитектурных решений, которые со временем превращаются в технический долг, блокирующий развитие.
Ключевые мысли:
- делать решения обратимыми (reversible decisions);
- эволюционируемость > предсказуемость;
- строить «жертвенные» архитектуры, которые не жалко выбросить.

Глава 7. Панель угроз: антипаттерны и ловушки
Какую проблему решает. Скрытые системные дисфункции, убивающие гибкость на корню, несмотря на использование современных фреймворков.
Ключевая мысль. Распознать и уничтожить токсичные паттерны до их укоренения в культуре инженерии.
| Антипаттерн | Суть |
|---|---|
| Vendor King | полная зависимость от проприетарного вендора. Решение — внедрить слой абстракции |
| Leaky Abstractions | детали реализации инфраструктуры просачиваются в бизнес-логику |
| Resume-Driven Development | хайповые технологии ради резюме архитектора, бессмысленно усложняющие квант |

Глава 8. Обратный манёвр Конвея
Какую проблему решает. «Координационный ад». Структура компании конфликтует с целевой архитектурой, из-за чего любой релиз требует согласований между отделами.
Ключевые мысли:
- закон Конвея: архитектура неизбежно копирует структуру коммуникаций в компании;
- Inverse Conway Maneuver: формируйте команды в точности так, как должна выглядеть ваша целевая архитектура.

Глава 8. Экономика эволюции: разговор с бизнесом
Какую проблему решает. Как обосновать менеджменту (CFO) финансовые затраты на инженерные практики, рефакторинг и внедрение функций пригодности.
Ключевые мысли:
- радикальное снижение рисков релиза;
- сверхбыстрый time-to-market;
- разблокировка культуры экспериментов (kaizen).

Стратегии миграции: с чего начать
Какую проблему решает. Аналитический паралич при столкновении с огромным, исторически запутанным легаси-монолитом.
Ключевая мысль. Выбор правильной точки старта критичен: она должна либо быстро минимизировать риски, либо продемонстрировать бизнесу максимальную ценность.
| Стратегия | Суть |
|---|---|
| Low-Hanging Fruit | быстрые победы: легко извлечь, малая ценность |
| Highest-Value | максимальная польза бизнесу: сложнее, но доказывает ROI |
| Infrastructure-first | сначала автоматизация конвейеров |
| Testing-first | покрытие легаси фитнес-функциями до рефакторинга |

Итоговый синтез
Какую проблему решает. Отказ от мышления «мы построим это один раз и на века».
Ключевая мысль. Эволюционная архитектура — не конечный пункт, а встроенный механизм выживания. Три контура переплетены в одну ленту: команды (закон Конвея), архитектура (функции пригодности и кванты), пайплайны (инкрементальные изменения).
Перестаньте строить на века — начните строить для изменений.
