Использование переключения функций и IoC вместо кода ветвления — хорошая или плохая идея?

Наши клиенты сами выбирают, когда обновляться. Итак, моей команде приходится поддерживать буквально десятки версий нашего программного продукта. Как вы можете себе представить, это приводит к большому количеству ветвлений и слияний, поскольку исправления и пакеты обновлений должны распространяться на все эти разновидности. Я не доволен ситуацией. Очевидное решение — просто не поддерживать столько разных версий нашего продукта, но это очевидное решение мне недоступно. Итак, я изучаю творческие варианты, чтобы уменьшить работу команды по техническому обслуживанию. Я рассматриваю возможность использования комбинации переключения функций и IoC в качестве способа реализации n-го числа версий нашего программного продукта. Идея состоит в том, что я мог бы использовать единую кодовую базу для своего продукта и управлять поведением и функциями с помощью управления конфигурацией. Это было бы вместо необходимости распространять код по нескольким ветвям. Разумный ли это подход или я просто подменяю одну проблему другой?

11
задан Ian Ringrose 1 February 2016 в 10:35
поделиться