很多团队把「代码审查」和「代码走查」当成一回事,结果开会时扯不清该盯代码质量还是对齐设计思路,人到了却不知道要看什么。这篇把两者在目的、形式、时机上的分工拆开讲,给出选哪种、怎么排、什么情况下不适用的判断依据,让评审会前十分钟定好范围和产出物。
很多团队把「代码审查」和「代码走查」当成一回事,结果开会时扯不清该盯代码质量还是对齐设计思路,人到了却不知道要看什么。这篇把两者在目的、形式、时机上的分工拆开讲,给出选哪种、怎么排、什么情况下不适用的判断依据,让评审会前十分钟定好范围和产出物。
判断顺序很简单:先问这次会想拿到什么结论。如果结论只能是「改完再合」,那就是审查;如果结论是「知道了,后面按这个来」,那更像走查。把这一点写在会前通知里,能省掉一半的跑题时间。下面按目的、形式与时机、角色与记录、工具辅助四块拆开说,每块都给出可照着排的动作。
先分清两件事要解决什么
代码审查盯的是「这段改动能不能合进主干」,重点是缺陷、边界、可维护性和回归风险,产出是明确的合并或打回结论。代码走查盯的是「大家看没看懂这段实现」,重点是把设计思路、命名约定、隐含假设摊开讲,产出是共识和后续待办。两者混开一场会时,最容易从「这块逻辑对不对」滑向「为什么这么设计」,所以会议开头先声明本次以哪个为准。
| 维度 | 代码审查 | 代码走查 |
|---|---|---|
| 核心问题 | 这段改动能不能合 | 大家有没有看懂这段实现 |
| 关注点 | 缺陷、边界、可维护性、回归风险 | 设计思路、命名约定、隐含假设 |
| 产出物 | 合并或打回的明确结论 | 共识与后续待办清单 |
| 典型结论 | 改完再合 | 知道了,后面按这个来 |
- 结论只能是「改完再合」,按审查安排,别混入设计层面的争论;
- 结论是「知道了,后面按这个来」,按走查安排,别揪着某一行代码的写法不放;
- 两边都想覆盖,就分成两场,先走查对齐结构,再审查抠细节;
- 会上先说清本次属于哪一类,写进通知和会议纪要第一行。
形式与时机怎么排
审查通常落在合并前,一两个熟悉该模块的人逐行看改动,改动小就异步留评论,改动大才约定同步时段。走查通常落在方案定稿后、大改动动手前,或新人接手模块时,参与人数可以多一些,看的是整体结构和调用链。顺序别倒过来:先走查对齐结构,再审查抠细节,反过来容易在细节里反复来回。
- 定范围先看这次改动的行数和文件数,超过团队约定的阈值就拆成多次,阈值由团队按自己的节奏定,别照抄别人的数。
- 定形式小改动走异步评论;改动大或涉及跨模块调用链,再约同步时段,同步会控制在约定时长内。
- 定顺序新模块或大重构,先走查对齐结构,再进审查;纯修复和小改动,直接进审查即可。
- 留下结论同步会结束前五分钟,由主持人把「本次以哪个为准、下一步谁做什么」念一遍,写进记录。
谁参加、留什么记录
审查需要明确的拍板人,意见冲突时由他定取舍,评论尽量落到具体行,避免「整体感觉不好」这种没法执行的反馈。走查需要讲解人,最好由写这段代码的人自己讲,其他人提问和补充上下文,别变成单向宣讲。两边记录格式要统一,不写进聊天记录里等它自然消失。
- 审查拍板人
- 意见冲突时定取舍的人,通常由模块负责人或技术负责人担任。
- 走查讲解人
- 讲清这段实现思路的人,优先是写这段代码的人。
- 阻塞项
- 不修就不能合并的问题,必须有人标记并在合并前确认关闭。
- 待办
- 走查里达成的后续动作,要落到负责人和时间点。
- 审查记录写「问题—位置—是否阻塞合并」,位置落到文件或具体行;
- 走查记录写「结论—待办—负责人」,避免只写「已讨论」;
- 什么情况下不适用:紧急线上修复、小到一行的拼写改动,可以只走简化审查,不必强行走查流程;
- 新人入职第一次参与,建议先当观察者,第二次再承担讲解或拍板角色。
用工具辅助时的检查清单
工具能省掉一部分机械劳动,但不能替人拍板。让模型先做命名一致性、明显空指针、日志缺失、异常吞掉这类机械项,再让人看设计取舍。模型给的建议要落到文件和行,泛泛的「建议增加注释」直接忽略。涉及权限、金额、数据删除这类改动的,AI 意见只作参考,必须有人复核。
- 先跑机械项,再安排人看设计取舍,别让模型替人拍板;
- 建议必须落到文件和行,无法定位的直接忽略;
- 权限、金额、数据删除类改动,AI 意见只作参考,必须人工复核;
- 每次评审后挑几条高频问题写进项目规则文件,比每次口头重复省事;
- 需要比对模型能力或工具价格时,到站内页面看当时的数字,别用记忆里的。
常见问题
代码审查和代码走查是不是一回事,能不能合并成一场会?
可以合并,但要在开头声明本次以哪个为准。合并的代价是讨论容易发散,适合小改动或小团队。改动大、涉及多人模块时,建议先走查对齐结构,再单独排审查抠细节,两场会各半小时通常比一场两小时更省时间。
走查要不要每次全组参加?
不必。参与者按模块相关度来定,写这段代码的人、要调它的人、负责该模块的人到齐就够。人越多的走查越容易变成宣讲,提问反而变少。新人可以旁听学习,但别把旁听人数当成走查质量的指标。
团队没人愿意在评审里提问怎么办?
先改形式再改人。把「有没有意见」换成「这三个假设哪个最可能不成立」,把开放提问换成对着清单过一遍,比如错误处理、并发、回滚路径各问一句。冷场往往是问题太开放,不是人不关心。