我们有一个可以在更多平台(iOS,Android和多个后端微服务:nodeJS,Python)上使用的应用程序。当我们开发新功能并准备就绪时,我们希望同时在所有平台上提供该功能。如果出现问题,我们希望将其关闭。
例如:
var featureEnabled = featureService.isMyNewFeatureEnabled();
if (featureEnabled === true) {
// turn on my new feature
}
else {
// use my legacy feature
}
最好的方法是什么?
答案 0 :(得分:3)
现在,我们已经实施了自己的解决方案。我对此感到非常遗憾。首先,通过在包含功能标记值的服务器上具有可下载的配置JSON,这似乎是一个简单的任务。还有一个用于编辑它们的简约管理页面。 当我们想添加例外时,兼容性提高了。就像为一个用户组提供一个值,为另一个细分市场提供另一个值。所谓的A / B测试。在尝试在我们当前的解决方案中破解此功能后,我们设法说服了管理层并获得了适当的功能标记服务。
这些是我们评估过的:
答案 1 :(得分:1)
正如对该问题的评论中所述,您要查找的是“功能标志管理”(又称“功能切换管理”),这些术语混合使用,但相同。功能标志确实启用了不同的模式或激活策略。您所描述的例子包括;
大多数功能标志管理系统将支持以上以及更多的激活策略。
从内部开始构建此类工具非常普遍,从本质上讲很简单:只有一个简单的标志和一些if语句。您面临的挑战是一旦您依赖功能标志管理。通常,您将需要审核日志功能,适当的用户管理处理,适当的扩展,确保有限的性能影响和类似的功能。在blog post中找到了有关要考虑的功能切换最佳实践的很好的介绍。
有多种强大的产品可供选择,它们是前四名:
答案 2 :(得分:0)
关于功能标志:What is a "feature flag"?
在stackoverflow上有一个很好的总结。