功能切换简介

已完成

使用功能标志可以更改系统的工作方式,而无需对代码进行重大更改。 只需进行少量配置更改。 在许多情况下,它也仅适用于少数用户。

功能标志针对将新代码推送至主干并部署的需求提供了一种解决方案,但该方案尚不可用。

这些标志通常是以用于控制条件逻辑的变量值的形式实现的。

假设你的团队都在银行应用程序的主干分支中工作。

你已决定应在主分支中完成所有工作,以避免之后进行繁琐的合并操作。

不过,你需要确保对利息计算进行重大更改,人们每天都依赖于该代码。

更糟的是,更改需要数周才能完成。 你不能就这么让主代码在这段时间中断了。

功能标志可以帮助你解决这一问题。

你可更改代码,以便没有设置功能标志的用户使用最开始的利息计算代码。

正在处理新利息计算并设置为查看功能标志的团队成员将拥有新的利息计算代码。

这是用于确定业务逻辑的业务功能标志的一个示例。

另一种功能标志是发布标志。 现在,假设你在完成利息计算代码工作后,对一次向所有用户发布新代码有些不安。

有一组用户,他们更擅长处理新代码和出现的问题,这些人通常被称为金丝雀。

这个名字来源于金丝雀在煤矿中的古老用途。

你更改配置,以便金丝雀用户也设置功能标志,他们也会开始测试新代码。 如果出现问题,可以再次快速禁用标志。

另一个发布标志可用于 AB 测试。 你可能想要了解一项新功能是否加快了用户完成任务的速度。

可以让一半的用户使用原始版本的代码,另一半使用新版本的代码。

然后,可以直接比较结果,确定功能是否值得保留。 功能标志有时称为功能切换。

通过在运行时仅靠“翻转开关”公开新功能,我们可以部署新软件,而无需向最终用户公开任何新的或更改的功能。

问题在于,在向最终用户发布功能时,你想要使用什么策略。

  • 向部分用户展示该功能,以便了解新功能是如何被接收和使用的。
  • 向随机选择的用户百分比展示该功能。
  • 同时向所有用户展示该功能。

业务所有者在这个过程中扮演着至关重要的角色,你需要与他们密切合作以选择正确的策略。

正如简介中提到的所有其他部署模式一样,最关键的部分始终是查看系统的行为方式。

将功能部署与功能公开分离的想法极具吸引力,我们希望将其纳入持续交付实践。

它可以帮助我们提供更稳定的版本,并在我们遇到问题或新功能产生问题时提供更好的回滚方法。

我们再次将其关闭,然后创建一个修补程序。 通过将部署与展示功能分开,你有机会在一天中的任何时间发布,因为新软件不会影响已经运行的系统。

什么是功能切换?

功能切换也称为功能翻转器、功能标志、功能开关、条件功能等。

除了在业务方面给你带来的力量之外,它们在开发方面也提供了优势。

功能切换也是分支的一种很好的替代方案。 分支是在版本控制系统中执行的操作。

为了保持功能隔离,我们维护了一个单独的分支。

当我们希望软件投入生产时,我们会将其与发布分支合并并部署。

通过功能切换,可以在切换后生成新功能。 你的功能在发布时处于“关闭”状态,不应向生产软件公开或影响生产软件。

如何实现功能切换

功能切换的最简单形式是一个 IF 语句。

Feature Toggle.

当开关关闭时,它会执行 IF 中的代码,否则执行 ELSE 中的代码。

可以使其更加智能化,从仪表板控制功能切换,或为角色、用户等构建功能。

若要实现功能切换,可以商业方式将许多不同的框架作为开放源代码使用。

有关详细信息,另请参阅探索如何在生产中为部分或所有用户逐步公开功能