特性切换

✍ dations ◷ 2025-05-17 06:19:24 #计算机编程,软件工程

特性切换或称功能切换,英语: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。

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

相关

  • 法国海军主要:布雷斯特、隆格岛、土伦次要:瑟堡-奥克特维尔、洛里昂、巴约讷法国海外领地:法兰西堡、卡宴、勒波尔(留尼汪岛)、努美阿、巴比提 海外:法国海军(法语:Marine nationale)为法国
  • NetApp网域存储公司(英语:NetApp, Inc.)是一间美国上市科技公司,以网络设备和服务贩卖为主纳斯达克100,财富100强的成员,曾当选FORTUNE杂志评比美国最值得上班的公司第一名。NetApp是Dav
  • 动脉硬化症动脉血管硬化(英语:Arteriosclerosis)是指动脉血管壁变厚、变硬并失去弹性的过程。这一过程会使得脏器、组织的供血逐渐减少,并因动脉粥样硬化(动脉血管硬化的一种,因脂肪、胆固醇
  • 大陆议会大陆会议(英语:Continental Congress),或作大陆议会,是指北美十三州在1774年至1789年间组成的联合议会,是为美国国会的前身。大陆会议与美国革命息息相关。18世纪中叶,英国与其北美
  • 中央司令部美国中央司令部(英语:United States Central Command,缩写为“USCENTCOM”)是美国国防部下的一个战区级联合作战司令部,创建于1983年,其前身为快速部署联合任务部队(Rapid Deployme
  • 咖啡带咖啡带(英语:Bean Belt)是指在地球的纬度中,种植咖啡豆的地区。因为刚好形成一道带状,所以称之为咖啡带。这一条咖啡带介在北回归线和南回归线之间。
  • 硬颚挤喉音硬颚挤喉音(Palatal ejective)是一种辅音,出现于一些口语中。国际音标将此音记作⟨cʼ⟩,其对应的X-SAMPA音标为c`_>。硬颚挤喉音的特征包括:此音主要出现在一些美洲原住民的语言
  • 第9频道第 9 频道 是一个微软的社区网站,诞生于2004年4月1日,是在Robert Scoble 和 Charles Torre 在 Microsoft 园区与思想领袖和朋友的一次交谈促生的。第 9 频道主要由微软开发人
  • 牛剑牛桥(Oxbridge),或译牛剑是英国两所大学牛津大学和剑桥大学的合称,两所大学之间因有着许多的共同点而常常被人以“牛剑”合称,但同时两校之间又有历史悠久的竞争关系和许多不同之
  • IEEE量子电子学选题杂志IEEE量子电子学选题期刊(IEEE Journal of Selected Topics in Quantum Electronics)是一份由电气电子工程师学会(IEEE)出版之双月期刊形式的同行评审科学期刊。本期刊涵盖量