首页/开发/代码质量与评审速查/一个改动只做一件事
代码评审64 条

一个改动只做一件事

单一职责同样适用于变更:一个 PR 只解决一个问题;混合多个主题的改动难评审、难回滚、难二分定位。

  • 反例:全库格式化 + 修 bug + 升级依赖混在一起
  • 重构与行为变化分开:评审者只需建模一次心智负担
  • 大主题拆成有依赖顺序的多个 PR,逐个合入
  • 判定标准:能否用一句话说清这个 PR 做什么
单一目的的 PR 让回滚成为干净操作,而不是连坐。
拆分信号所有改动能否放进同一句变更说明;不能则拆
拆分方式按可独立合并的小步提交,保持中间状态可构建

易错点

  • 顺手全库格式化:真实改动被淹没,评审者直接放弃细看
  • 多主题混合回滚:想撤一个改动却波及全部

数据来源与参考

  • Google Engineering Practices · Small CLs(单一日标改动)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌