1

我并不是要含糊其辞,但我对发布有意关闭的代码的想法持怀疑态度,而且我无法找到与该主题相关的任何好的资源。这可能真的是一个“取决于”的问题,在这种情况下,请随时投反对票并删除。

我的具体情况是我们自己托管的一个网络应用程序,每两周一次“发布”(推送到生产)。此外,我们目前使用 Subversion,尽管在不久的将来会推动迁移到 Git。

我听说过的一种情况是部署一项功能,该功能依赖于具有尚未发布的已知功能的库,无论是您自己的库还是第三方库。

另一个是在功能完成时发布部分功能,但在所有部分都在生产中之前禁用。

虽然这两种方法一开始听起来都不错,但我质疑在生产环境中禁用的代码的价值,尤其是作为一般实践。似乎这可能会导致未完成的功能使代码库混乱,并导致配置文件超出所需,只是为了提供禁用/启用功能的方法。

部署故意禁用的代码有什么好处(如果有的话),在我们以任何频率执行此操作之前需要解决哪些问题?

另外,请分享任何链接,并告诉我这种做法是否有名称。

4

2 回答 2

1

它被称为功能切换

我认为使用基于角色的授权启用/禁用功能不再有风险。您对代码混乱和增加配置的担忧是有道理的,但持续交付的倡导者会认为替代方案(功能分支)更糟糕。

于 2012-07-25T05:50:32.500 回答
0

我已经看到这样做的主要基础是将代码推送与配置推送分开。如果您可以将它们分开,则更容易确定您是否有错误的版本或错误的配置。您可以默认关闭不完整功能 X 的版本,继续推送可以回滚而不启用它的版本,然后当您决定打开它时,您可以更新您的配置,如果需要也可以回滚。

于 2012-07-25T18:09:27.593 回答