首页/开发/代码质量与评审速查/拆分大 CL 的常用切法
代码评审64 条

拆分大 CL 的常用切法

大改动拆分的实战切法:横向按文件或模块、纵向按依赖顺序、先重构后功能;每个新 CL 合入后仓库保持可构建可测试。

横向拆分按文件、模块或层分组,每组一个 CL
纵向拆分按依赖顺序:先底层脚手架,再调用方

纵向拆分示例(自底向上)

纵向拆分示例(自底向上)
CL1: 数据模型与接口定义(无调用方,可独立合入)
CL2: 服务实现 + 单元测试
CL3: 入口接线 + 集成测试
CL4: 清理旧实现与开关
拆分后每个 CL 都应能通过 CI 并保持仓库可用;'合入一半才能编译'的大爆炸式拆分要避免。

易错点

  • 拆出半成品 CL:中间态编译不过、测试挂红,拖垮主干
  • 接口先行但无实现时评审者无法验证行为,需附设计说明与后续计划

数据来源与参考

  • Google Engineering Practices · Small CLs(拆分建议)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌