代码评审到底该看什么:一份务实的检查清单
✦
← CSDN

代码评审到底该看什么:一份务实的检查清单

楼主:超级管理员 · 2026-10-06 12:16 · 浏览 174

代码评审 Code Review 协作
超级管理员 楼主

代码评审到底该看什么:一份务实的检查清单

代码评审容易变成两种极端:要么走过场点个赞,要么纠结于代码风格吵半天。聊聊怎么让它真正有用。

先看什么 按重要性排序:

  1. 正确性。这段代码做了它声称要做的事吗?边界条件处理了吗?错误路径覆盖了吗?
  2. 设计。这个改动放在这里合适吗?有没有引入不该有的耦合?抽象层次对不对?
  3. 可维护性。三个月后别人(包括你自己)能看懂吗?命名是否准确?
  4. 安全性。有没有注入风险?权限检查到位吗?敏感数据有没有泄露到日志?
  5. 性能。有没有明显的 N+1 查询?循环里有没有重复计算?

风格问题(缩进、括号位置)应该交给格式化工具,不占评审时间。

几个具体的检查点

错误处理

  • 空值/空集合处理了吗?
  • 异常是被正确处理还是被吞了?
  • 错误信息对排查问题有帮助吗?(「操作失败」这种毫无价值)

并发

  • 共享状态有没有保护?
  • 锁的粒度合理吗?有没有死锁可能?
  • 异步代码里 await 漏了吗?

数据

  • 输入验证了吗?
  • 数据库操作有没有事务保护?
  • 大批量操作会不会把内存打爆?

测试

  • 有测试吗?
  • 测试验证的是行为还是实现?(测实现的测试一重构就全红)
  • 边界条件测了吗?

怎么给反馈

  • 区分「必须改」和「建议」。明确标注,别让作者猜。
  • 说清楚为什么。不只说「这里不好」,要说「这里在并发场景下会有竞态,因为……」
  • 对事不对人。评审的是代码不是写代码的人。
  • 不确定就问。与其猜测,不如直接问「这里为什么这么写?」

几条建议

  1. 小批量。一次评审超过 400 行,发现问题的能力断崖式下降。
  2. 作者先自审。提交前自己过一遍 diff,能过滤掉大部分低级问题。
  3. 描述清楚。PR 描述里写清楚「改了什么、为什么改、怎么验证的」。
  4. 别拖。评审请求放着超过一天,上下文就凉了。
  5. 自动化能做的别让人做。格式化、lint、依赖检查、测试覆盖率,都交给 CI。

最后一句 评审的目的不是找茬,是共同对代码质量负责。把评审当成对抗,团队就输了。

代码评审到底该看什么:一份务实的检查清单 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

十年实录

区分必须改和建议这条能省掉大量来回。补充一点:一次评审超过 400 行发现问题的能力断崖下降,作者拆小 PR 比 reviewer 更努力管用得多。

杨清和

按正确性、设计、可维护性、安全、性能排序这个思路我认同,风格问题确实该交给格式化工具。补一条实操经验:评审意见要分级,必须改、建议改、仅探讨标清楚之后沟通成本降很多,否则作者会把所有意见都当阻塞项来回拉扯。另外超过四百行的改动建议直接打回,让人拆开。

陶文

把正确性和设计排在风格前面,这一条能省掉团队一半的无意义争论。我带新人时另加过一条:改动超过 300 行就先拆,不拆评审人根本看不完,只能挑缩进凑数。安全那栏也别只写有没有注入,具体到日志里是否打了手机号和令牌,效果差很多。

登录 后参与回复