导入
功能开关入门
获取功能开关的简要介绍。
功能开关
在设置持续部署流水线时,我们鼓励你:
自动化部署流水线是实现频繁部署成功、无惧、最重要的是避免最终用户体验出现重大事故的一个关键环节。我们应不惜一切代价避免 Web 应用用户持续中断或遇到有缺陷的体验。
什么是功能开关?
如果你不熟悉这个术语,也许以下这些说法听起来更熟悉:
- 功能标志(feature flag)
- 功能开关(feature switch)
- 功能翻转器(feature flipper)
- 条件性功能,等等
简而言之,
它是一种根据某些条件开启或关闭功能的机制。
这些条件具体是什么,完全取决于你。一些示例包括:
- 一个基本的布尔值,控制所有用户的可见性。对所有人来说,要么开启,要么关闭。
- 一个百分比值。10% 的用户看到新功能,90% 的用户看不到。
- 一个日期值。工作日的上午 9 点到下午 5 点之间可见,其他时间及周末隐藏。
- 用户资料属性,用于针对个人或特定人群,例如每周至少使用 Web 应用四次的用户。
根据你的具体情况,你可以使用其他在当前工作背景下有意义的条件。
除了上述单独的条件外,我们也可以将多个条件组合起来,使得新功能仅对之前为测试版功能提供过反馈的 Web 应用高频用户中的 5% 可见。
使用功能开关发布未完成的代码
我们使用功能开关的第一个场景是隐藏未完成的代码,从而让我们可以毫无顾虑地部署到生产环境,而不会意外破坏任何内容。
这项工作的需求可总结如下:
- 使用 Firebase Remote Config 存储功能开关。
- 使用 Svelte store 在客户端存储功能开关。
- 开发一个 Svelte 组件来处理潜在的复杂性。
由于我们尚未介绍 Svelte 框架,这里只需知道:Svelte 是一个开源的前端 JavaScript 框架。目前我们只需要了解这些。后续章节中会详细解释。
现在,让我们逐一开始处理上述定义的需求。