代码审查的定义
- 代码作者以外的其他人对代码进行检查, 以寻找代码的缺陷和可以提高的地方
代码审查的方式
- 本地编码
- 本地使用静态检查工具
- 本地使用单元测试
- 本地使用工具查看准备发出去的diff
- 发出审查
- 通过则puvh
- 不通过则修改再次提交
代码审查应该检查什么
- 设计
- 功能
- 复杂度
- 测试
- 命名
- 注释
- 格式
代码审查的收益
直接受益
- 代码质量
- 协作效率
- 研发成本
- 工程师成长
附带收益
- 变更决策的审核
- 工程师社交
如何成功执行代码审查
常见问题
- 无疾而终
- 流于形式,
- 走过场
- 浪费时间
解决根本: 团队内达成重要的共识
- 明确代码审查的重要性
- 计入工作量、计入绩效考核标准
- 审核统计数据做参考, 主观互评反馈为主导
- 逐步形成、固化审核基准
- Don’t Block Engineer – 改进审核流程、工具提高审查效率
通过提高代码提交原子性促进落地
代码提交原子性: 一个提交包含一个不可分割的特性、修复或者优化, 同时这个提交要尽可能 小。
- 结构清晰
- 容易定位问题, 易回滚
- 大小合适, 方便审查
抓手: 提高提交说明的质量
- 标题
- 详细描述
- 测试情况
- 与其他工具和系统相关的信息
通过commit message推动原子性和代码审查
- 规定提交说明一定要包括标题、描述和测试情况三部分
- 要求提交说明必须详细写明测试情况
- 逐步要求提交的原子性
观点
- 计入工作量, 形成文化, 形成绩效考评基线
- 使用提高代码提交的原子性来推动
- 作为相互尊重的讨论、反馈工具 + 门禁工具
本文链接地址: 高效代码审查