【发布时间】:2012-03-22 02:24:09
【问题描述】:
我们的客户可以选择何时升级。因此,我的团队实际上必须维护和支持我们软件产品的几十个版本。正如您可以想象的那样,这会导致大量的分支和合并,因为热修复和服务包必须在所有这些风格中传播。我对这种情况不满意。显而易见的解决方案就是不维护我们产品的这么多不同版本,但我无法使用这种显而易见的解决方案。所以,我正在探索创造性的选择来降低团队的维护工作。我正在考虑使用功能切换和 IoC 的组合来实现我们软件产品的 n 个版本。我的想法是我可以为我的产品使用单个代码库,并通过配置管理来管理行为和功能。这将代替必须跨多个分支传播代码。这是一种合理的方法,还是我只是用一个问题换另一个问题?
【问题讨论】:
-
听起来很合理。您将为单个代码库交易多个分支,打开和关闭功能。从理论上讲,您可以通过配置打开或关闭功能。如果您确实需要运行不同的代码,则可以使用具有不同代码实现的 IoC 容器。如果您的问题更具体,并举例说明您当前的风格与建议的风格,您的问题会更容易回答。
-
感谢 RaulG,您总结得很好,利用 IoC 处理不同的实现正是我的想法。我不确定如何回答您关于样式的问题。该应用程序已有十多年的历史,因此它不反映任何单一风格。我可能会将上述策略应用于重新设计的组件。听起来,拟议的战略并未引发任何危险信号。 -- 谢谢。
标签: inversion-of-control featuretoggle