Trunk-Based Development и изоляция фичей
Trunk-Based Development определяется механизмом работы в git c ветками и ничем другим
A source-control branching model, where developers collaborate on code in a single branch called ‘trunk’ *, resist any pressure to create other long-lived development branches by employing documented techniques.
Источник https://trunkbaseddevelopment.com/
Фича-флаги не являются явлением, которое определяет TBD. Фича-флаги не являются частью TBD. TBD можно строить без фичафлагов. Собственно watch так и делал 2 года.
Давайте разберемся откуда в разговоре о TBD появляются фича-флаги и какой причинно-следственной связью обладают.
У TBD есть недостаток - им сложно пользоваться в случае если над кодовой базой работаю параллельно. Если последовательно, проблемы нет. Для того, чтобы дать возможность работать в TBD с кодовой базой параллельно используются:
- структурный дизайн
- branching by abstraction technique
- api versioning
- фича флаги
Как вы видите, фича флаги это один ИЗ МНОГИХ средств, не единственный.
Все это можно назвать единым термином: “функциональная изоляция”, я об этом пишу статью - https://conf.fxclub.org/display/EngXT/Feature+isolation.
Первый вывод: фича-флаги это подход, позволяющий решить проблему параллельной разработки в TBD. Фича-флаги не являются явлением, которое определяет TBD. Фича-флаги не являются частью TBD.
Вывод второй: существует много средств позволяющих решить проблему параллельной разработки в TBD.
Третий вывод: примитивами в разговорах и рассуждениях должны быть “TBD” и “функциональная изоляция в составе N инструментов”. Строить рассуждения и делать выводы исключительно вокруг “TBD и фича-флаги” является не корректным сужением перспективы, которое вводит в заблуждение и ведет к неправильным выводам.