SYSTEM ATLASЗагрузка материала

Branch by Abstraction

Branch by Abstraction

Позволяет менять реализацию за стабильной абстракцией без долгой ветки разработки.

Простыми словами

Представьте замену двигателя, пока водитель продолжает пользоваться теми же педалями и рулём. Branch by Abstraction прячет старую и новую реализацию за общей границей, поэтому переход можно делать небольшими шагами без долгоживущей ветки кода.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

Применять локальное решение без проверки контекста, ограничений и вторичных последствий.

Системный подход

Сначала определить механизм, затем выбрать минимальное изменение и измерить результат.

Ограничения

«Branch by Abstraction» объясняет только часть происходящего в области «Архитектура ПО». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.

Источник

Martin Fowler. Branch By Abstraction (2014; updated).

Первоисточник