用 524 个真实 PR 证明:拖垮审查的不是 AI,是没人算过的复杂度账
ReviewDebt: a practical framework for scoring every pull request — Sachin Gupta, Ebay · Sachin Gupta
全片 25 分钟·真正值得盯屏约 7 分钟·3 个必看点
- 0:00 – 3:35略
一个没人在算的缺口
讲者开门见山:编码代理产出代码的速度已经超过人类能负责任审查的速度,而这个差距目前没有任何团队在度量。随后连甩三组行业数据把问题坐实。
同一年里提交量涨了 25%,审查评论却掉了 27%;PR 审查时长中位数涨了 441.5%,无人审查就合入的 PR 多了 31%——产量和审查关注正在反向而行。
数据密集但都是引用型的报告数字,配的是文字和统计图,扫一眼记住量级即可,不必逐句听。▶ 跳到 0:00讲者 · Sachin Gupta - 3:35 – 8:00听
为什么它是债务而不是技术债
定义「审查债」:代理已产出的代码,与人类真正审查、信任并理解的代码之间的缺口。讲者强调它会复利,利息用人类注意力偿还,并列出五种隐性成本形态。
五种成本里最阴的是「测试表演」——代理生成的测试断言的是代码正在做什么,而不是它应该做什么,等于把 bug 锁死成了既成事实。
全程是概念推导和类比论证,画面基本停在一页定义上,听着走路或通勤都不损失信息。▶ 跳到 3:35讲者 · Sachin Gupta - 8:00 – 13:24略
十项确定性检查怎么搭
拆解评分框架:五个信号族、十项可以直接从 PR 算出来的检查,涵盖差异体量与耦合、测试证据缺口、所有权扩散、代理作者痕迹、说明与理由缺口,最后合成 0–100 分并分四个处置带。
整套评分刻意不引入大模型当裁判——只用能确定性复算的指标,这样分数才能被质疑、被辩护、被写进流程。
10:52 附近有一组对照画面值得停一下:高缺口 PR 的正文只有 18 个字符、提交信息写着「updates」,旁边低缺口 PR 则写清了症状、诊断、改动和基准链接。看懂这一对,比听完十项检查的名称有用。▶ 跳到 8:00讲者 · Sachin Gupta - 13:24 – 16:52看
打分器实测三个真实 PR
现场把三个来自公开仓库的真实 PR 送进打分器:结构良好的得 0 分、高债的得 60 分、代理写但补齐了测试和风险说明的只得 7 分。
触发高分的从来不是「谁写的」,而是体量、耦合和缺失的证据;代理只是创造了债务快速累积的条件。
这一段全部信息都在屏幕上——报告的具体条目、每项扣了几分、预估审查分钟数。只听声音会完全丢失论证力度,必须看画面。▶ 跳到 13:24讲者 · Sachin Gupta - 16:52 – 20:26看
524 个 PR 的真实账单
把扫描范围放大到三个公开仓库、90 天、524 个 PR,展示审查工时的累积曲线,以及落入高负担带的 PR 到底长什么样。
524 个 PR 只有 4 个进了最高两档,且全是大型迁移这类结构性变更;但整体已经累积 228 小时资深审查者工时,最极端的单个 PR 估算要 84 小时。
工时累积曲线和两个仓库的对比只有看图才能形成直觉——数字念出来是「186 小时和 43 小时」,画成曲线才看得出发散是从哪一周开始的。▶ 跳到 16:52讲者 · Sachin Gupta - 20:26 – 23:40听
处方与落地五步
给出不需要任何新工具的团队规约(一个 PR 一个逻辑变更、测试随变更走且由人确认断言的是应然行为、按团队边界拆分跨领域改动、改动理由必须人类亲笔),再给出从度量起步的五步采纳路径。
先拿上周的 20 个 PR 打一遍分验证框架,别一上来造工具;分数以评论形式可见但不阻塞合并,真正要盯的是每周的债务斜率而非绝对值。
这是清单式的口头论述,条目本身比呈现方式重要,边听边记就够,不需要盯屏幕。▶ 跳到 20:26讲者 · Sachin Gupta - 23:40 – 24:57听
带走的三件事
一分钟收尾:三个可以明天就做的动作,加一份反模式清单,并把话题引向 2027 年绕不开的治理议题——信任、问责和审计线索。
让代码质量的讨论从「我感觉这个 PR 有点危险」变成一个能拿出来吵的数字,这才是整套框架真正想换来的东西。
纯口头总结,没有新画面,听完最后一分钟即可收工。▶ 跳到 23:40讲者 · Sachin Gupta