使用功能标志实现主干开发 | AI生成和翻译

Home 2025.12

问题:如何在真实团队中,使用功能标志成功实施基于主干的开发,并提供实用、分步的指导?

答案:

这是一个经过实战检验的分阶段发布计划,大多数团队都可以使用它从 Git Flow(或混乱)转向真正的基于主干的开发,实现每天 20-100+ 次部署。

阶段 0 – 先决条件(1-2 周)

  1. 确保您拥有真正的 CI,并在每次提交时运行(测试、linting、安全扫描)。
  2. 让 CI 管道快速运行(关键路径小于 10 分钟)。如果更慢,请先修复它。
  3. 实现 80% 以上的单元测试覆盖率和合理的集成/端到端测试覆盖率。
  4. 设置自动化部署,在每次合并到 main 时部署到测试环境。

阶段 1 – 强制执行“短生命周期分支”(1-2 周)

阶段 2 – 引入功能标志(2-6 周)

步骤 操作
1 选择一个功能标志系统(LaunchDarkly、Unleash、ConfigCat、Split.io 或内部系统)。
2 创建一个“Hello World”标志,并在生产环境中切换一些微不足道的东西。
3 定义标志生命周期规则:每个标志都必须有所有者 + 删除日期(最多 30-90 天)。
4 添加自动化清理作业:如果存在死标志,则 CI 失败。
5 开始将每个新功能包装在一个标志中。旧代码目前可以保持未标记状态。

阶段 3 – 完全基于主干(重大切换)

  1. 声明 main 为唯一分支。删除 develop 和所有旧的发布分支。
  2. 所有工作现在都发生在:
    • 直接在 main 上(对于非常小的更改),或
    • 在极其短生命周期的分支中(理想情况 <4 小时,绝对最大 <24 小时)。
  3. 强制执行“结对/群组编程”或在数小时内(而不是数天)进行强制代码审查。
  4. 强制执行“每天多次合并到 main”作为文化规范(在站会中跟踪)。

阶段 4 – 持续部署(回报)

  1. 将与测试环境完全相同的提交从测试环境 → 生产环境自动(或一键批准)发布。
  2. 将每次合并到 main 的代码部署到生产环境(代码始终位于标志之后或 100% 安全)。
  3. 一旦功能完全推出,积极地删除旧标志。
  4. 如果您需要额外的安全性,可以添加金丝雀部署或环形部署。

阶段 5 – 优化和扩展

10-50 人团队的典型时间线

周次 里程碑
1–2 快速 CI + 短生命周期分支策略
3–8 所有新工作都使用功能标志
9–12 完全只基于主干 + 持续部署到生产环境
12+ 每天 20+ 次部署,几乎零事故

常见陷阱及如何避免

陷阱 解决方法
“我的功能对于一个标志来说太大了” 将其分解为 10 个小标志(UI 标志、API 标志、DB 迁移标志等)
数据库 schema 更改 使用可扩展迁移 + 回滚脚本 + 功能标记的代码
害怕破坏生产环境 从暗发布和百分比发布开始(0.01% → 100%)
标志蔓延 强制最长 30 天的生命周期 + 自动化清理

一旦您达到第 4 阶段,部署真正变得枯燥——这正是您想要的。

参考资料:


Back

x-ai/grok-4.1-fast

Donate