问题标签 [featuretoggle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2278 浏览

.net - 在 .NET 中有效使用功能切换的工具和技术

我已经阅读了很多关于功能切换的内容,但没有使用它们的实际经验。人们推荐哪些工具和技术来有效管理功能切换?

我想最简单的方法是将切换作为真/假值存储在 web.config 文件中作为 appSettings 但这听起来不是一个特别好的方法。

理想情况下,我希望任何管理功能切换的方法都可以:

  • 标记移除时切换开关的任何用途。例如编译错误
  • 突出显示任何旧切换。即功能发布后仍然存在的切换
0 投票
3 回答
2627 浏览

php - 现有的功能切换 PHP 工具

最近,我阅读了一些文章,讨论了使用“功能切换”或“看门人”在开发完成之前对用户隐藏功能的想法。Facebook 和 Flickr 都讨论了他们如何使用它来测试一部分用户的新功能,然后再将它们释放给每个人。

一些谷歌搜索并没有发现任何现有的 PHP 包/工具可以添加到 Web 应用程序来处理这种类型的事情。滚动我们自己的方法似乎很简单,但如果我们不需要,没有理由重新发明那个轮子。是否有任何现有的 PHP 工具可以做到这一点?

文章

澄清:我希望查看它是否存在的部分是管理面板,它控制哪些用户可以看到新功能。在 Flickr 的示例中,他们可以根据主机打开它。在 Facebook 示例中,他们添加了一些功能,例如将功能限制为 5% 的用户、仅限 TechCrunch 用户或仅限东海岸用户。

当您有 200 个已启用的功能、10 个尚未完成的功能以及您正在为某些用户演示的另外 3 个功能时,管理面板似乎至关重要。

0 投票
2 回答
2653 浏览

java - 弹簧上下文中的功能切换

我想使用功能切换范例。具体来说,我希望我的 Spring 上下文包含基于切换的不同 bean 定义。

我遇到过这个:http ://robertmaldon.blogspot.com/2007/04/conditionally-defining-spring-beans.html ,看起来不错,但可能有点太麻烦了

0 投票
1 回答
238 浏览

configuration - 当新功能需要对代码库进行大量更改时,如何处理功能切换?

功能切换非常适合新功能 - 在大多数情况下,功能应该简单地被一些 UI 容器包围,这些 UI 容器将基于功能配置可见或不可见。但是,如果新功能需要对现有代码库进行大量更改,如何使用功能切换呢?我不能使用“复制和更改”,因为显然它比功能分支要糟糕得多——我不会遇到任何合并冲突。那么这些要求的最佳实践是什么?

0 投票
1 回答
167 浏览

perl - 在 Perl5 中实现功能切换

我希望能够创建“幽灵”包和潜艇。我有一个配置(ini)文件,其中包含如下条目:

这个文件被解析了,以后开发者可以提出如下问题:

(整个想法基于 Martin Fowler 的 FeatureToggle http://martinfowler.com/bliki/FeatureToggle.html

使用 AUTOLOAD 来捕获 MyApp::Feature 中的调用,并使用 BEGIN 块来解析 ini 文件,我们能够提供此 API:

问题是:是否可以创建以下 API:

只有 MyApp::Feature?

小写,大写可以在配置文件中修改,这不是这里的问题。并且说清楚,实现与配置是分离的,没有 MyApp::Feature::User::Login::RSA 并且永远不会。此功能的实现在于 MyApp::Humans 中的 fe。

我知道放置 MyApp::Feature::Foo::Bar 表明必须有这样的包。但是开发人员知道功能包管理功能切换的约定,他们对此没有任何问题。我发现第一个示例(使用 enabled( $string ) 有点太复杂,无法阅读

第二个更好:

第三个会更容易:

那么,是否可以在包级别模拟 AUTOLOAD?

问候,罗布。


0 投票
1 回答
1443 浏览

inversion-of-control - 使用功能切换和 IoC 代替分支代码——好主意还是坏主意?

我们的客户可以选择何时升级。因此,我的团队实际上必须维护和支持我们软件产品的几十个版本。正如您可以想象的那样,这会导致大量的分支和合并,因为热修复和服务包必须在所有这些风格中传播。我对这种情况不满意。显而易见的解决方案就是不维护我们产品的这么多不同版本,但我无法使用这种显而易见的解决方案。所以,我正在探索创造性的选择来降低团队的维护工作。我正在考虑使用功能切换和 IoC 的组合来实现我们软件产品的 n 个版本。我的想法是我可以为我的产品使用单个代码库,并通过配置管理来管理行为和功能。这将代替必须跨多个分支传播代码。这是一种合理的方法,还是我只是用一个问题换另一个问题?

0 投票
1 回答
352 浏览

gwt - 使用 GWTP 进行功能切换

您可能知道,Feature-Toggle 是一种部署尚未完全准备好的功能的方法,并通过使用一些配置将它们打开。可以为特定客户启用功能(例如 A/B 测试),也可以在准备好后逐步为所有客户启用。

我想知道是否有人知道如何在 GWTP 中做得很好。我认为功能切换可以通过两种方式完成(两个范围级别): - 使用延迟绑定机制:替换特定部署所需类的实现(演示者范围)。- 使用不同的应用程序页面 - 实现您自己的 PlaceManager 并导航到包含特定部署(位置范围)的新功能的不同位置。

我认为应该通过“if-​​else”来控制更精细的范围(例如,演示者中的某些功能)。

为了决定打开哪些功能,我想使用某种配置(可能由 maven 配置文件控制)。有没有办法将自定义配置元素添加到 gwt.xml 模块配置中?

还有其他想法如何实现功能切换吗?有人对这种方法有任何经验吗?

谢谢!

0 投票
6 回答
5399 浏览

java - 功能切换 Java 注释

如何使用切换 Java 注释?

简单的功能切换:- if(toggle enabled) do x

Spring 允许使用“配置文件”来切换 bean。

我使用这些,它们很好,但我想在字段或类上切换注释.. 我该怎么做?

用例,我有一个具有 jpa 注释的类。我希望能够在某些环境中通过配置标记某些字段是@transient。

0 投票
3 回答
27059 浏览

version-control - 功能切换与功能分支

什么是“功能切换”和“功能分支”,它们之间有什么区别?

优缺点都有什么?为什么一个比另一个好?

我在 Google 上找到了一些关于此的文章,并且我倾向于属于“功能切换”阵营,但我不相信“功能切换”在所有情况下都是更好的选择。

0 投票
1 回答
3455 浏览

testing - 在持续集成中运行的测试中应该如何设置功能切换?

使用功能切换时如何进行测试?您希望您的开发计算机尽可能接近生产。从我观看的视频来看,功能切换的实现方式允许某些人“使用”该功能(即 0 到 100% 的用户,或选定的用户等)。

为了正确地进行持续集成,在测试时您是否必须使用与生产服务器相同的功能切换设置?或者更好的是,如果该功能在生产中没有关闭,那么在构建管道中运行自动化测试时确保它处于打开状态?您最终是在测试代码中放置功能切换,还是在新文件中编写测试?新功能何时是系统测试必须执行的过程中的强制性步骤?