代码评审记录模板:字段、必填项与填写示例

代码评审记录模板以一张评审记录表为核心,包含评审基本信息、变更范围、检查项结论、问题清单与合入结论五组字段。填写时先锁定变更标识与评审范围,再逐项记录检查结论和待办问题,最后由合入责任人给出通过、有条件通过或退回的结论并留痕。本文提供可直接复制的空白表、逐字段填写口径、必填项标注,以及一份完整填写示例,方便团队当天投入使用。



要点总览(TL;DR)


  • 模板以一张评审记录表为核心,分五组字段:评审基本信息、变更范围、检查项结论、问题清单、合入结论,可直接复制到文档或表格工具使用。
  • 检查项结论采用“通过/不通过/不适用”三值,问题严重级别分阻断、重要、建议三级,合入结论分通过、有条件通过、退回三种,取值口径统一后记录才能横向比较。
  • 记录编号、变更标识、提交人、评审人、评审时间、变更范围、四项检查结论、结论与合入责任人为必填;问题清单相关字段在发现问题时必填,合入时间在退回时留空。
  • 填写时先锁定变更标识与评审范围,再逐项记录检查结论并登记问题,最后由合入责任人给出结论;问题关闭状态与合入结论需相互对应。
  • 模板按变更类型裁剪检查项,新增字段需通过准入判断,并保留版本号与变更记录,按季度或迭代节奏回顾有效性。


可复制空白代码评审记录模板


下面这张表按五组字段分组,可直接复制到文档或表格工具中。每组字段的先后顺序对应一次评审的实际推进顺序:先确认这次评审针对哪个变更、范围多大,再逐项记录检查结论,把发现的问题登记成可跟踪的条目,最后给出合入结论。空白表只提供结构,各字段的填写口径见下一节。


分组 字段 填写内容
评审基本信息 记录编号
变更标识
提交人
评审人
评审时间
变更范围 涉及模块
变更类型
影响面
检查项与结论 正确性
可读性
测试覆盖
安全与依赖
问题清单 问题描述
严重级别
责任人
关闭状态
合入结论 结论
合入责任人
合入时间
遗留事项

问题清单在实际使用中往往不止一条,复制时把“问题清单”四行扩展成多行即可,每条问题占一行,并保留问题编号以便在讨论中引用。检查项也可以按团队技术栈增加行,但应保持“检查项—结论—说明”三列结构,避免结论与依据分离。



每个字段记录什么:字段说明


同一张表在不同团队手里填出不同口径,记录就无法横向比较,也无法在复盘时判断当时的评审质量。下表给出每个字段的含义、填写口径与示例值,团队可以直接把“填写口径”一列作为填写规范使用。


字段 含义 填写口径 示例值
记录编号 本次评审记录的唯一标识 按团队约定规则生成,保证全库不重复,便于检索与引用 CR-2024-0317
变更标识 被评审的代码变更 填写变更单号、提交哈希或分支名,能唯一定位到具体改动 feature/order-export 分支,提交 a1b2c3d
提交人 发起变更并送审的人 填姓名或工号,与变更单上的提交人一致 张明
评审人 实际参与评审的人 列出全部参与者,多人用顿号分隔;只列实际给出意见的人 李华、王倩
评审时间 评审完成的时间 填写评审意见汇总完成的日期,精确到日即可 2024-03-18
涉及模块 变更触及的代码模块或服务 按仓库目录或服务名填写,跨模块时全部列出 订单服务、导出工具类
变更类型 改动的性质 从功能新增、缺陷修复、重构、配置调整中选一项或多项 功能新增
影响面 变更可能波及的范围 写明受影响的接口、数据表、上下游调用方;无外部影响时写“仅内部逻辑” 订单导出接口,影响报表模块调用
正确性 逻辑是否符合需求与预期 结论取“通过/不通过/不适用”,附一句依据 通过:边界条件已覆盖
可读性 命名、结构与注释是否清晰 同上三值;小问题记入问题清单,不单独判不通过 通过
测试覆盖 新增与改动逻辑是否有测试 写明覆盖方式与用例数量;无自动化测试时说明手工验证情况 通过:新增 6 个单元测试
安全与依赖 是否引入安全风险或新依赖 新增第三方依赖须写明名称与版本;无变化时写“无新增依赖” 通过:无新增依赖
问题描述 评审发现的具体问题 写清位置与现象,避免只写“建议优化” 导出文件名未做非法字符过滤
严重级别 问题的处理优先级 分为阻断、重要、建议三级,判定口径见下文 重要
责任人 负责修复该问题的人 填具体人名,不填团队或角色 张明
关闭状态 问题的处理进展 取“待处理/已修复待验证/已关闭”三值之一 已关闭
结论 本次评审的最终判定 取“通过/有条件通过/退回”三值之一 有条件通过
合入责任人 执行合入的人 填姓名;与提交人可以是同一人 李华
合入时间 代码实际合入的时间 结论为退回时留空,待重新评审后补填 2024-03-19
遗留事项 本次未解决、需后续跟进的内容 逐条列出并注明计划处理时间;无遗留时写“无” 导出性能优化,计划下个迭代处理

检查项结论采用三值而非简单的通过与否,是为了区分“检查过且合格”和“本次变更不涉及该检查项”。例如纯文档修改的变更,测试覆盖一栏填“不适用”比填“通过”更准确,复盘时也不会误判为有测试保障。


问题严重级别的判定口径建议统一为:阻断指会导致功能错误、数据损坏或安全漏洞,未修复不得合入;重要指影响可维护性或存在边界缺陷,应在合入前修复或明确接受;建议指风格与优化类意见,可延后处理。关闭状态中,“已修复待验证”用于提交人已修改但评审人尚未确认的情况,只有评审人确认后才改为“已关闭”。


合入结论的三种取值含义不同:通过表示检查项全部合格且无未关闭的阻断、重要问题,可直接合入;有条件通过表示仅剩建议级问题或已约定遗留事项,允许合入但须登记遗留事项;退回表示存在未解决的阻断或重要问题,变更需修改后重新评审。三种结论对应不同的后续动作,填写时不能混用。



必填与选填:哪些字段不能空


必填项的作用是保证每条记录都能被定位、追溯和判定。字段缺失时,记录无法回答“评的是哪个变更、谁评的、结论是什么”这三个基本问题,这样的记录在复盘和审计中不具备参考价值。下表标注各字段的必填属性。


字段 属性 说明
记录编号 必填 记录的唯一入口,缺失则无法检索与引用
变更标识 必填 缺失则无法定位被评审的代码
提交人 必填 追溯变更来源
评审人 必填 评审结论的责任主体
评审时间 必填 判断评审与合入的先后顺序
涉及模块 必填 影响面判断的基础
变更类型 必填 决定检查项的取舍
影响面 必填 合入风险评估依据;无影响也须写明
四项检查结论 必填 每项都须给出结论,不涉及填“不适用”
问题描述、严重级别、责任人 有问题时必填 登记问题即须三项齐全
关闭状态 有问题时必填 随处理进展更新
结论 必填 评审的最终判定
合入责任人 必填 合入动作的责任主体
合入时间 结论为通过或有条件通过时必填 退回时留空
遗留事项 有条件通过时必填 其他结论下可写“无”

选填字段的适用场景有限。问题清单相关字段在本次评审未发现问题时整组留空,不必强行填写“无问题”;遗留事项在通过和退回两种结论下可以写“无”或留空,但有条件通过时必须逐条登记,否则“有条件”就失去了约束。合入时间在退回场景下留空,等修改后重新评审再补填,避免出现“已退回却有合入时间”的矛盾记录。


必填缺失时的处理规则应当前置到流程中:提交评审前,提交人自查基本信息与变更范围是否完整,缺项不予送审;评审结束时,评审人确认四项检查结论均已给出,缺项视为评审未完成;给出合入结论前,合入责任人核对结论、合入责任人与遗留事项是否匹配,不匹配则退回补填。把这三道检查点写进团队约定,比事后补记录更可靠。



完整填写示例:一次功能变更的评审记录


以下示例为演示情景,用于展示字段之间的对应关系。背景是订单服务新增导出功能:提交人张明在 feature/order-export 分支完成开发并送审,评审人李华、王倩参与评审,变更涉及订单服务与导出工具类,影响订单导出接口及报表模块的调用。


分组 字段 填写内容
评审基本信息 记录编号 CR-2024-0317
变更标识 feature/order-export 分支,提交 a1b2c3d
提交人 张明
评审人 李华、王倩
评审时间 2024-03-18
变更范围 涉及模块 订单服务、导出工具类
变更类型 功能新增
影响面 订单导出接口,影响报表模块调用
检查项与结论 正确性 通过:分页与空结果边界已覆盖
可读性 通过:方法拆分清晰,命名统一
测试覆盖 通过:新增 6 个单元测试,覆盖导出主流程与异常分支
安全与依赖 通过:无新增依赖;导出内容已做权限校验
问题清单 问题描述 导出文件名未过滤非法字符,含斜杠时保存失败
严重级别 重要
责任人 张明
关闭状态 已关闭(3 月 18 日修复,李华验证通过)
合入结论 结论 有条件通过
合入责任人 李华
合入时间 2024-03-19
遗留事项 大批量导出性能优化,计划下个迭代处理

这份示例展示了几个关键对应关系。问题清单中登记了一条重要级问题,责任人张明当天修复,评审人李华验证后关闭,因此合入结论可以是“有条件通过”而非“退回”——重要问题已关闭,剩余的是性能优化这类不阻塞合入的遗留事项。如果该问题在评审结束时仍处于“待处理”,结论就应改为“退回”,合入时间留空,待修复后重新评审再补填。


检查项结论与问题清单之间也需对应:可读性判为通过,意味着风格类意见没有升级为问题条目;若评审中提出了命名建议并登记为建议级问题,可读性一栏仍可判通过,但问题清单中应出现对应条目并跟踪关闭。这种对应关系让记录在复盘时能回答“当时发现了什么、怎么处理的”。


当评审记录需要与代码变更、任务和合入状态保持关联时,可以把记录表挂到对应工作项下,由提交、评审、修复、合入各环节的负责人在同一处更新状态。ONES 支持在工作项中承载评审记录与状态流转,使记录编号、变更标识与合入结论形成可追溯的链条;具体承载方式以团队实际配置为准。



模板的调整与维护方法


模板投入使用后,团队技术栈和流程会变化,字段也需要随之调整。调整的原则是保持五组字段的骨架稳定,在组内做增减,避免每次改动都推翻结构导致历史记录无法比较。


按变更类型裁剪检查项是最常见的调整。功能新增类变更应保留全部四项检查;缺陷修复类可强化正确性与测试覆盖,安全与依赖一栏在无依赖变动时填“不适用”;纯重构类变更可增加“行为是否保持不变”的检查项;配置调整类变更可增加“回滚方案”一栏。裁剪时以变更类型字段为索引,在模板中写明不同取值对应的检查项组合,填写人按类型取用即可。


新增字段需要过一道准入判断:该字段是否能帮助回答定位、追溯或判定这三类问题之一;是否每次评审都能稳定填写;是否与已有字段重复。三项都满足才加入,并同步更新字段说明表与必填标注表。仅对个别项目有用的信息,放在遗留事项或问题描述中记录,不升级为模板字段。


模板本身应有版本号与变更记录。每次调整记录版本号、调整日期、调整内容与原因,旧版本记录保留原样,不回溯修改。这样在对比不同时期的评审记录时,能解释字段差异的来源。


定期回顾建议按季度或按迭代节奏进行,回顾时抽取若干条记录检查:必填项是否齐全、检查项结论是否与问题清单对应、合入结论与遗留事项是否匹配、是否有字段长期填“不适用”而失去意义。发现长期空置的字段,考虑删除或改为选填;发现反复补填的字段,考虑改为必填并前置到送审检查中。回顾结论记入模板变更记录,形成模板持续演进的依据。



常见问题


评审过程中发现问题但当天无法修复,记录应该怎么填?


先把问题登记完整:问题描述写清位置与现象,严重级别按阻断、重要、建议判定,责任人填具体修复人,关闭状态填“待处理”。合入结论此时应填“退回”,合入时间留空。等修复提交后,把关闭状态改为“已修复待验证”,评审人确认后再改为“已关闭”,并重新组织一次评审补填结论与合入时间。整个过程在原记录上更新,不另开新记录,保证同一条变更的评审历史可追溯。


小团队人少,评审人和提交人经常是同一批人,记录还有必要填这么细吗?


人少时字段可以裁剪,但定位、追溯、判定这三类信息建议保留。记录编号、变更标识、提交人、评审时间保证记录能被找到;四项检查结论保证评审确实发生过;结论与合入责任人保证有人对合入负责。可以简化的是评审人数量、影响面描述的详细程度,以及建议级问题的跟踪粒度。裁剪后把调整写进模板变更记录,避免不同时期的记录口径不一致。


检查项结论填“不适用”和填“通过”有什么区别,会影响复盘吗?


区别在于是否真的检查过。填“通过”表示该项检查执行了且合格,填“不适用”表示本次变更不涉及该检查项。例如纯配置调整的变更,测试覆盖一栏填“不适用”更准确;如果填“通过”,复盘时会误以为该变更带有测试保障。团队应在字段说明中固定“不适用”的适用条件,并约定填写时附一句简短依据,便于后续核对。


评审记录和代码变更、任务怎么关联,避免记录散落在各处?


常见做法是把记录表挂到对应工作项下,用变更标识字段与代码提交建立对应,由提交、评审、修复、合入各环节的负责人在同一处更新状态。这样记录编号、变更标识与合入结论形成一条链,复盘时从任一入口都能找到完整过程。ONES 支持在工作项中承载评审记录与状态流转,具体承载方式以团队实际配置为准。若团队暂未使用工具承载,至少在记录编号规则中约定与变更单号的对应关系。


模板用了一段时间后,很多字段长期空着,应该删掉还是保留?


先判断空置原因。如果该字段对应的检查项在当前技术栈下确实不涉及,可以改为选填或按变更类型条件启用;如果是填写人遗漏,应把该字段前置到送审检查中,而不是删除。定期回顾时抽取若干条记录,检查必填项是否齐全、检查结论与问题清单是否对应、合入结论与遗留事项是否匹配。删除字段前确认历史记录仍保留原样,并在模板变更记录中写明调整原因。