还能挂着开关,不等于该长期挂着
把「先用开关挡风险」当成可以永久保留双路径的理由,往往会留下开关坟场:没人记得默认值、残留分支仍在跑旧逻辑、紧急回滚时找不到真正生效的那一档。
更稳妥的默认态度是:开关有到期日,默认偏向安全,落地后清理残留分支。本文只谈通用闸门。
!开关三闸:到期日、默认安全、残留清理(assets/feature-flag-cleanup-gate-body-01-2026-08-20.png)

闸门一:到期日是否可见
每个长期开关应有到期或复审日期。没有日期的开关会变成永久配置。到期后要么固化为代码默认,要么明确续期并记录原因。

闸门二:默认安全值是否写清
开关关闭时的行为应偏向安全与可回滚,而不是「关了就空指针」。新成员读配置时应能一眼看出默认落在哪一侧。破坏性默认(关了直接不可用)要有额外审批。
!默认安全:关闭侧也要可解释可回滚(assets/feature-flag-cleanup-gate-body-02-2026-08-20.png)

闸门三:残留分支是否可清理
功能落地后,旧分支应有删除计划:代码、配置项、文档与监控面板。只关开关不删分支,等于债务留在仓库里。清理前用一次回归确认只剩单一路径。
局限、替代路线与复核清单
清理开关不能替代设计审查;有些合规开关必须长期保留,但应标注「永久类」并单独台账。更完整的替代路线是「到期复审 + 默认安全 + 残留删除 + 台账」。
发布前至少复核四问:是否有到期日;默认是否安全;残留分支是否有删除计划;紧急回滚是否仍依赖已过期开关。本文描述通用模式;正式调整前请用本环境开关清单复核。
!复核四问:到期、默认、残留删除、回滚依赖(assets/feature-flag-cleanup-gate-body-03-2026-08-20.png)