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