目标
评审能力是对失败模式的模式识别,它长在真实代码上、长在与参照物的分歧里。让初级做第二评审者、私下先记发现再对照资深提交的评审,每个 PR 都变成一次校准课;分歧处就是课程本身——被漏掉的那个边界检查就是可迁移的模式。
步骤要点
- 在真实评审上结对:把初级安排为资深评审者之后的第二评审,资深的提交评审作为校准参照。
- 资深提交前先对比发现:初级先私下评审并记录发现,再与资深提交的评审逐条对照,讨论每处分歧。
- 用共同量规校准:维护发现质量量规(严重度、具体性、建设性),给双方发现打分对齐标准。
- 轮换结对与领域:初级在不同资深与不同代码域间轮转,防止单一风格克隆并拓宽领域覆盖。
- 凭证据毕业:当私人发现在连续多轮中追平或超过资深参照时晋升为第一评审者,而非按资历。
排错提示
初级只看不说等于没结对,私下记录加对照讨论是机制核心;风格全克隆了某位资深是没轮换,跨人跨域才能长出自己的判断;按年头提拔评审者会制造有特权的批准人,毕业要引用发现质量记录。
适用边界
结对占用资深评审时间,容量有限时要挑高教学价值的 PR;量规评分有主观性,需定期多人复核校准锚点。
代码示例
pairing session (PR #5188, junior B + senior A):
B reviews privately first (20 min):
[1] blocking: retry loop has no cap
[2] suggestion: rename `d` -> `delayMs`
[3] (missed) -- division by zero when
`interval == 0`
A submits:
[1] same as B[1]
[2] A: "blocking: interval=0 crashes -- guard"
divergence discussion:
B[3] missed -> pattern taught: "always test
the zero/empty boundary of every number"
rubric (finding quality 1-5): severity accuracy,
specificity, constructiveness
B series: 2.9 -> 3.6 -> 4.1 -> 4.2 graduate