Vibe Tutorial
用户反馈与产品迭代

15.6 迭代节奏管理

Tip

软件开发不是修大桥,修好了就不能动了。软件是种树,需要持续修剪、施肥。Agile (敏捷) 的核心就是:不要憋大招,要小步快跑。


1. 为什么要学这个?

你想做一个“完美版 2.0”。 闭关开发了半年,期间没有发布任何更新。 半年后上线,发现市场变了,或者 Bug 太多导致用户无法使用。 用户因为半年没看到更新,以为你跑路了,早就删了 App。


2. 核心概念:CI/CD 与 版本号

2.1 语义化版本 (SemVer)

v1.2.3

  • 1 (Major): 重大重构 (不兼容旧版)。
  • 2 (Minor): 新功能 (兼容旧版)。
  • 3 (Patch): 修 Bug (兼容旧版)。

2.2 发布节奏

  • 每日构建 (Nightly): 哪怕只改了一行代码,只要测试通过,就自动部署到测试环境。
  • 每周发布 (Weekly): 每周五发一个 Stable 版给用户。
  • 小步快跑: 每次只改一点点,出问题了好回滚。

3. 解决方案 (HOW)

3.1 Changelog 驱动开发

在写代码之前,先写 CHANGELOG.md。 “这周我要实现什么?” 如果写不出来,说明目标不清晰。

3.2 Feature Toggles (功能开关)

想上新功能,又怕有 Bug?加个开关:

if (flags.enableNewUI) {
  return <NewUI />
} else {
  return <OldUI />
}

先把代码部署上去 (默认为关)。验证没问题了,在后台一键开启。 出问题了,一键关闭 (Kill Switch)。不需要重新发版。

3.3 迭代循环图

graph TD
    Plan["本周计划"] --> Dev["开发 & 提交"]
    Dev --> Test["自动化测试"]
    
    Test --> Deploy["部署 (Feature Flag Off)"]
    Deploy --> Verify["线上验证 (开给 1% 用户)"]
    
    Verify --> Release["全量发布 (100%)"]
    Release --> Feedback["收集反馈"]
    
    Feedback --> Plan
    
    style Release fill:#c8e6c9,stroke:#2e7d32

4. 避坑指南

❌ 不要这样做 ✅ 应该这样做 为什么
憋大招 小版本 Waterfall 模式是敏捷的天敌。发布周期越长,风险越大,回滚越难。
周五发版 周二发版 周五傍晚发版 = 周末加班修 Bug。尽量周二/周三发,出了问题周四还能修。
无 B 计划 回滚策略 每次发布前都要想好:万一炸了,怎么在 1 分钟内回滚到上个版本?

5. 真实案例

Story

骑士资本的 4 亿美元

2012年,骑士资本 (Knight Capital) 更新了一次交易系统代码。 因为测试不充分,且忘了删掉一个旧的 Feature Flag,导致系统错误地疯狂高买低卖。 45 分钟内亏损了 4.4 亿美元。公司直接破产。

Vibe 心法:发布代码的动作就像拆盲盒,风险与惊喜并存。坚持“小步快跑”与“全自动 CI/CD”,能让每一次上线都变得微不足道且可控。通过 Feature Flag 掌控功能的开关,是获得生产环境“豁免权”的关键。


6. 本章小结

  1. Ship Early, Ship Often:与其追求完美,不如追求速度。
  2. Feature Flags:让你能控制功能的生杀大权。
  3. Safety First:永远准备好回滚按钮。