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 и фича-флаги” является не корректным сужением перспективы, которое вводит в заблуждение и ведет к неправильным выводам.

tbdfeatureisolationthought