feature flag
一种开关,让特定功能可以随时开启或关闭,而不需要重新部署代码
简单来说
功能开关(feature flag)是嵌在代码里的一个开关,让开发者能在不重新构建整个程序的情况下,单独打开或关闭某个新功能。可以联想成建筑里的配电箱:不需要切断整栋楼的电源,只要把电路分开,就能单独关掉一个房间的灯。同样地,开发者会在代码里预先埋下一个隐藏的把手,这样就能悄悄关掉某一个功能,而不影响其他部分。
这个把手为什么重要?因为上线前不可能筛掉所有问题,有些问题只有在功能真正推出之后才会被发现。这时如果有这个把手,就可以只关掉出问题的那个功能,让其余部分照常运作。如果没有这个把手,就得把整个程序重新打包上线,发现问题到真正修复之间的时间会拉得很长。
所以,那些能先让部分用户试用新功能观察反应,或者出问题后几小时内就能撤回的服务,通常都是提前搭好了这种开关的。反之,没有这套结构就直接上线功能的服务,一旦出问题就很难快速应对。
在报道中是这样出现的
文章指出,「如果没有通过功能开关来开启和关闭的结构,就无法在一天之内把功能撤下来」。也就是说,Google 能在 Earth AI 功能上线仅一天后就将其撤回,正是因为提前搭建了这种开关。
一个容易被误解的地方:有功能开关,并不代表问题一开始就不会发生。它只是让问题出现后能够快速回滚的机制,并不能替代上线前的验证。
亲手试一试
如果你常用的某个App里,某天突然多出一个新功能,过几天又悄悄消失了,那很可能就是功能开关被打开又关闭留下的痕迹。如果功能的出现或消失并没有伴随App更新,那大概率不是重新部署了代码,而是有人拨动了这个开关。
