认识 Code Review
概念
Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制对代码、测试过程和注释进行检查,确保整体代码运行状况随着时间的推移而得到改善。
目的和意义
- 目的:代码质量、知识共享、团队规范
- 意义:
- 查找系统和代码的缺陷,把控风险
- 保证代码整体健康度不会随时间的推移而降低
- 提高开发者自身水平
方式
常见的 Code Review 有下面几种方式
结对编程(瞬时评审)
- 一对一的共同编程
- 场景:复杂的业务问题、或紧急问题的修复
即时代码评审(同步评审)
- 提交人给审核人讲解任务详情、改动等
- 场景:不清楚任务目标、或高级指导低级
工具支持的代码评审(异步评审)
- 和开发流集成,只有 Review 通过才能合并
- 默认的方式,也是最常用的
基于会议的代码评审(偶尔评审)
- 组织会议,团队多人共同评审
- 场景:大型、比较复杂的项目;有一定风险的项目;为了提高整体水平
不做 Code Review 的典型场景
- 不认同,团队整体意识不到位
- 需求多,时间紧,疲于应付需求
- 技术水平不足,无法给出有效意见
Code Review 常见问题
提交人
- 提交大量代码评审
- 发起评审前没有进行自测
- 不进行评审,直接上线
- 没有给评审人留够充裕的时间
评审人
- Review 不仔细,产生低级的问题
- 对业务不熟悉,无法判断影响面
- 反馈时机长,不及时处理提交人提交的 Code Review
全体
- 没有规范的 Code Review 机制和自测机制
如何做好 Code Review
前提
要避免 Code Review 流于形式,而避免流于形式的关键点则是 大家都有主观意愿,并且客观条件允许
要有代码规范、Check list、总结优化、激励机制
流程
1 | +-------+ +---------+ +---------+ +---------+ +-----+ +------------+ |
- 定标准
- 目的:有法可依、团队一致
- 内容:
- 共识标准:权利责任标准、冲突处理标准、特例紧急case处理标准、检查单标准
- 提交人标准:发起时机标准、选择评审人标准、Commit 标准、代码标准、合并分支标准、处理评论标准
- 评审人标准:检查内容标准、可通过标准、评论标准、反馈周期标准
- 全员学习
- 目的:统一思想、确认标准可落地
- 需求梳理
- 统一对需求理解,设计评审有理可依
- 内容:
- 提交人要有基于需求的代码改动设计方案
- 评审人要有基于需求理解之下的代码改造意见
- 代码评审
- 讨论
- 目的:达成共识,求同存异
- 评审结果落地
- 总结归纳,持续优化标准
总结
Code Review 是提高代码质量、把控项目风险的一剂良药,同时也是提高个人水平的一个重要渠道。而长期维持良好的 Code Review 并不容易,但是良好的 Code Review 是个人和团队成功不可或缺的一环。
资料
GoogleCR机制(原文):https://google.github.io/eng-practices/review/reviewer/
GoogleCR机制(翻译版):https://cloud.tencent.com/developer/article/1514271