问题标签 [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 投票
1 回答
243 浏览

toggle - 如何最好地切换特定的健身测试?

可以有条件地打开或关闭特定的健身测试吗?

Fowler/Hodgson 术语中,我们使用“发布切换” - 即允许在我们的测试和专业环境中禁用更改直到准备好黄金时间的切换。我们不希望这些功能的故障影响到 pro 的发货,因此对这些测试的结果不感兴趣。从这个意义上说,CDP 管道一直将切换设置为“PRO”配置,以保持验收测试的快速和集中。那么如何让 Fitnesse 忽略与切换相关的测试呢?

我看到了这个相关的答案:如何在持续集成中运行的测试中设置功能切换?这表明该用户测试了切换的所有方面,但这对我们来说通常是不可能的 - 例如,假设由于 DI 或其他原因,某个功能需要重新启动应用程序才能更改切换(例如,因为该功能需要连接不同的 Web 控制器) - 这对fitnesse 来说是一件相当困难的事情。这会导致缓慢的测试,并且正在测试我们实际上不需要测试的功能(还)。

因此,我们希望能够开发功能(在切换后)和测试、夹具(标有相同的切换),并且当我们准备好启用它们时,轻弹它们以通过 CI 管道运行。就像是:

  1. 决定功能需要切换,因此创建一个 TOG123-change-api-behaviour
  2. 将切换添加到所有代码都可以看到的中央切换系统
  3. 在 CI 环境的配置中将切换设置为“false”
  4. 开发切换代码背后的功能和适应性测试
  5. 当准备好 CDP 设置为 true
  6. 通过测试后,运送给专业人士
  7. 及时..通过字面搜索 TOG123 并清理混乱来删除切换..

我没有看到一个好的答案是如何保护特定的fitnesse测试条件(即新测试将有一个when:TOG123.enabled,旧测试将有一个when:TOG123.disabled)。Fitnesse 似乎有点.. 对我来说很尴尬。标签是我要找的吗?套房似乎太宽泛了..

0 投票
1 回答
323 浏览

java - 从一个地方控制 Togglz

我们目前正在尝试在 Spring-MVC 中实现Togglz库。

我们目前MyFeatures.java通过以下方式从文件中管理代码中的切换:

然后在我们的实际课程中:

这很好用,但我们在测试中存在缺陷,我们执行以下操作:

这里的问题是我们的切换默认为禁用,并且可以从我们的 UI 或此文件中MyFeature.java打开/关闭。MyFeatures.java但是......我们在测试中的切换默认为启用并使用以下任一行打开/关闭:

或单独在每个测试中。

这至少是我们必须关闭功能的两个地方,如果我们有更多使用这些功能的测试,可能会更多,所以我的问题是:

是否可以从一个地方控制所有 Togglz 功能切换,无论它们是在代码中还是在测试中?

0 投票
1 回答
220 浏览

android - Android - 来自数据库、共享首选项或内存的功能标志?

我很好奇这里的最佳实践。

目前,我将所有功能标志 ( https://en.wikipedia.org/wiki/Feature_toggle ) 保存在数据库中。当我必须显示某些功能时,我会从中读取状态(真/假),然后根据值显示/隐藏它。我的应用程序中有大量这些功能标志,并且我在整个应用程序中不断地 ping 数据库。

有没有更好的办法?将其保存在数据库中,但加载到缓存(内存?)并从中读取?发生变化时更新该缓存?

编辑:打开/关闭发生在服务器端。然后服务器将这些更改同步到应用程序,然后将其保存到数据库中。

此外,这些选项的一些优点/缺点和内存影响会很好。在网上没有找到类似的东西。

0 投票
1 回答
7828 浏览

spring - @Autowired Spring @Component 与 @ConditionalOnProperty

我可以使用@AutowiredSpring 4.x @Components@ConditionalOnProperty来选择基于featuretoggles.properties文件的功能实现吗?

使用src/main/resources/featuretoggles.properties文件:

(切换器“b”的名称和类“B”匹配的名称是巧合;让它们相等不是我的目标,切换器可以有任何名称。)

这无法featureControllerwith中自动连接UnsatisfiedDependencyException,说“没有可用的‘功能’类型的合格 bean:预计至少有 1 个有资格作为自动装配候选者的 bean”。

我知道我可以通过一个根据属性@Configuration选择 a 的类来实现这一点。@Bean但是当我这样做时,我必须在每次添加功能切换时添加一个新的配置类,并且这些配置类将非常相似:

0 投票
1 回答
392 浏览

scala - scala 的功能切换

我正在开发一个 scala 项目,我在测试程序时需要打印一些调试信息。我在程序中间放了一些打印功能。但是如果我激活了一些调试标志或类似的东西,我只想运行它们。

我找不到一种干净的方式来做我想做的事。我想知道有什么我可以使用的吗?

只是为了解释更多关于我的项目的信息,我正在使用生成硬件的 Chisel 库,并且我正在使用 SBT 进行构建。

0 投票
1 回答
839 浏览

.net - 如何使用功能切换 Nuget 包在 .Net Core 中启用功能切换?

以下是我在应用程序中所做的更改。在代码中添加了 FeatureToggle 包。并创建了新的打印类(仅用于示例类)扩展 SimpleFeatureToggle。

appSettings.json 添加了 featureToggle 键并将其设置为 true。因此,Printing 类将读取它并启用功能切换。

** Startup.cs 在 ConfigureServices 方法中注册了我的打印服务。我已将配置文件(appSettings.json)传递给打印类。

// 在 Mapper 类中,检查功能切换是否启用并启用功能。

我在上面的代码中犯了什么错误?为什么我的代码 System.FileIOException. 中出现此错误?

0 投票
1 回答
147 浏览

microservices - 关于如何实施基于主干/主分支开发的研究或研究论文?

请您分享一篇关于如何在基于微服务的环境中实现“基于主干”/主分支开发(而不是长期存在的子分支)的研究或研究论文?

最好是一项研究,提供商业案例($$$)的理由和这种方法的好处证明。

这可以让开发人员和管理人员相信,争取短期分支很重要,例如使用“功能切换”。

与具有难以合并回主控的长寿命(子)分支相反,并且由于没有足够频繁地测试“(主)主干/主控”而使自动化测试变得困难。

此外,如果本文讨论实施“基于主干”开发的常见陷阱、优缺点和(实际)障碍,例如如何处理微服务(团队)之间的合同版本更改,例如使用功能当许多微团队不断更新主干/主控时,在微服务之间切换?

如果论文提到 PACT 或类似的框架将是一个额外的好处,可以说服管理层朝着正确的方向前进。

谢谢!

0 投票
2 回答
6550 浏览

java - 如何从头开始在 Java 中实现功能切换?

我需要在当前项目中实现功能切换。我不知道如何在 Java 中从头开始实现它。

我已经阅读了与该主题相关的各种文章中的特性切换背后的理论,但我还没有看到为初学者详细描述这一点的实现教程或文档。

0 投票
1 回答
438 浏览

java - 使用动态代理进行功能切换

我们一直在 AWS Lambdas 中使用 Guice 进行 DI,但现在正在转向 Spring Boot 和长期运行的服务。

我们在 Guice 中将功能切换作为动态代理,但需要在 Spring 中实现。

假设我们有一个SomeFeature接口和两个实现DisabledImplementation,并且EnabledImplementation.

我可以通过标记DisabledImplementationwith@Component("some.feature.disabled")EnabledImplementationwith@Component("some.feature.enabled")然后编写一个这样的实现来非常接近:

但我宁愿根本不编写FlippingFeature课程,而是使用隐藏的动态代理来完成。我可以用自定义BeanFactoryPostProcessor或其他东西来做到这一点吗?

0 投票
1 回答
408 浏览

javascript - 将字符串一致地转换为从 0 到 100 的随机百分比

对于新功能的软推出,我希望拥有功能标志的服务器返回一个百分比数字,然后让客户端确定它在百分比的哪一侧。我想使用用户 ID 始终如一地做出此选择,以便单个用户将始终看到标志的同一侧。

我已经做到了

它对 ID 进行散列(这将是一些大字符串),然后获取散列的第一个字符并将其转换为整数 id。不幸的是,这个数字似乎不是随机分布,所以即使我移动并乘以它总是在 0 到 100 之间,它看起来也不是随机的。这是我运行的一些随机字符串的哈希值:

有没有更好的方法来做这个检查,以便创建百分比的随机分布?