特性切换

✍ dations ◷ 2025-07-22 07:11:05 #计算机编程,软件工程

特性切换或称功能切换,英语:feature toggle、feature switch、feature flag、feature flipper或conditional feature等。它是软件开发中的一种技术,是替代维护多个源代码分支(也称特性分支)的一种方案,这使特性在完成并正式发布前也可以得到测试。特性切换是在运行期间隐藏、启用或禁用特定功能。例如在开发过程中,开发人员可以启用功能以进行测试,而其他用户不会被启用该功能和受到它的影响。

持续发布和持续交付为开发人员提供了有关其代码的快速反馈,而这要求尽早地集成其代码更改。特性分支为此过程引入了一个旁路。特性切换是实现持续交付的一项重要技术。

这种技术使开发人员得以发布包含未完成功能的产品版本。这些未完成的功能被隐藏或被禁用,因此不会出现在用户界面中。这使软件可以发布很多次小的增量版本,而无需承担不断分支与合并的成本。特性切换使软件集成的周期得以更短。项目团队可以使用特性切换来加速开发过程,因为产品中可以包含默认不启用的未完成代码。

特征切换在本质上是条件语句中使用的变量。因此,这些条件语句中的块可以根据特征切换的值切换为开或关。切换为关的代码块类似于被注释的代码。这是开发人员可以绕过它们软件中的某些流程,例如尚未准备好部署的功能。

功能切换的主要用途是避免在发布前的最后一刻因软件合并而产生的冲突。尽管这可能导致切换负债。切换负债是指一个功能已被永久关闭后,软件中仍存留着死亡的代码,并可能带来一些开销。这种代码必须被仔细甄别才能删除,以免干扰到其他代码。

功能切换主要有两种类型。一种是开发人员在产品发布之前决定保留或删除的发布切换(取决于其效果)。另一种是业务切换,它相较于旧的代码是满足不同的用法。

特性切换可用于以下情况:

特性切换可以存储在:

功能组由一组可切换的互相配合的功能组成。这使开发人员可以轻松管理一系列相关的切换开关。

特性标志的另一个好处是Canary发布。Canary发布(或Canary启动或Canary部署)允许开发人员逐步为一小群用户测试某项功能。如果功能的性能不令人满意,则可以回滚它,没有任何不利影响。

虽然在大多数编程语言(例如Java、Angular JS、PHP、JavaScript等)中可以轻松实现这种模式,也存在一些函数库来进一步简化这种用法。

马丁·福勒指出,功能切换应该是你将功能投入生产时的最后一种选择。取而代之,最好将功能分解成更小的部分,将每个部分安全地实现来引入到产品发布,从而避免导致问题。

许多大型网站都使用特性切换技术,包括Flickr、Disqus、Etsy、reddit、Gmail和Netflix。

有许多适用于各种编程语言和平台的开源的特性切换和特性标记解决方案。

相关

  • 园地栽培园地栽培(英语:gardening),是园艺活动的一部分,指的是在园地栽培植物的过程。在园地里种的园艺植物一般是为了该植物开出的花、长出的叶或整体的外表。而那些实用色彩更浓厚的植
  • 末端裸子植物末端裸子植物(学名:Acrogymnospermae)指的是由松柏门、苏铁门、银杏门、买麻藤门四个类群组成的现生裸子植物演化支,按照目前的研究,其在演化上构成单系群。
  • 特德·特纳泰德·透纳(英语:Ted Turner,1938年11月19日-),美国新闻人,世界第一个电视新闻频道有线电视新闻网的创办者。于24岁继承其自杀父亲的遗产,并于1970年购买了亚特兰大的一家电视台,创办
  • 少昊少昊(?-?),昊又作皞、皓、颢,又称青阳氏、金天氏、穷桑氏、云阳氏,或称朱宣。姓己,名摰(亦作质、鸷),为黄帝之子,生于穷桑(今山东省曲阜北),建都于曲阜。传说他能继承太昊的德行,故称少昊或小
  • 入部入部,就汉字索引来说,是为部首之一,康熙字典214个部首中的第十一个(二划的则为第五个)。就正体中文中,入部归于二划部首,入部通常是从上方或中间为部。且无其他部首可用者将部首归
  • 林川兴林川兴(马来语:Khalil Idham Lim bin Abdullah),马来西亚霹雳州议会知知西廊议员,伊斯兰党党员。虽然身份证名称为马来名称,但是他是一名华裔穆斯林,于1985年成为穆斯林。在成为政
  • 新加坡文学奖新加坡文学奖(Singapore Literature Prize)是新加坡的文学奖,由新加坡国家书籍发展理事会于1992年创办,并受新加坡国家艺术理事会(英语:National Arts Council (Singapore))和国家
  • 维基峰维基峰(英语:Wiki Peak)是一座位处美国阿拉斯加州的山峰,最高点为海拔2,333米。它位于兰吉尔-圣伊里亚斯国家公园境内,接近与加拿大的边境。
  • 台湾文献丛刊《台湾文献丛刊》,年代上自唐、宋、元、明、清,下至日治时期的台湾方志、明郑史料、清代档案、私家著述、私人文集、南明史籍、诗文辑录,以及台湾之历史、地理、风俗、民情、政
  • 桃柘罗汉松桃柘罗汉松(学名:;毛利语:Tōtara),也称作新西兰罗汉松,是新西兰特有的罗汉松。在整个北岛、南岛的东北部的低地、山地及亚高地上生长,最高生长环境可达海拔600米。桃柘罗汉松常在土