Переключение функций требует очень строгой дисциплины, так как сломанный / темный код готовится к производству.
Я согласен с Electrawn, я использую ветвление функций на протяжении 6 лет, потому что в нашем случае у нас нет предварительных требований.
Также важно понимать, что «Стратегия Toogle» переносит усилия, затраченные на Стратегию Функциональных Ветвей (Слияние), на другой момент.
http://martinfowler.com/bliki/FeatureToggle.html
Очень важно убрать переключатели после того, как отложенные функции будут внедрены в производственную среду. Это включает в себя удаление определений в файле конфигурации и всего кода, который их использует. В противном случае вы получите кучу переключателей, которыми никто не сможет вспомнить, как ими пользоваться. В одном памятном примере, о котором я слышал, потребовалась специальная перекомпиляция ядра Linux для обработки достаточного количества ключей командной строки.
Примечание. Следуя принципам SCM, если кто-нибудь откроет и отредактирует файл, это может стать некорректным кодом.
Итак, на мой взгляд, я не верю в «лучший выбор во всех случаях», потому что это зависит от культуры вашей команды и наличия у вас тестового покрытия.
Что ж, это очень полемический вопрос.
В моем случае я по-прежнему предпочитаю стратегию функциональных веток. Сохраняя передовой опыт SCM и планируя дорожную карту, процесс слияния, как правило, оказывается простым. В течение этого года я слышал, как многие люди жалуются на процесс слияния, но в большинстве случаев проблема слияния остается той же, по моему опыту: «Связь не работает» :)
Извините за неточный ответ, но я думаю, что есть некоторые человеческие аспекты, связанные с этим предметом лучшего выбора в SCM.
person
Eduardo Fabricio
schedule
17.10.2013