每个项目都有几块没人敢动的祖传代码。改,怕引出连锁反应;不改,业务还得往上加需求。Codex 的代码审查能力,给这些”代码遗产”提供了一次低成本体检的机会。这篇讲审查流程、提问模板和行动策略。
代码审查的目的不是重写,是搞清楚”它为什么这样,以及动它要付出什么”。

一、审查前的准备:划定范围
老代码动不得,先从”读懂”开始。划定第一次审查的范围:一个文件、一个模块,别贪多。范围越小,理解越深;上来就扫全项目,只会得到一堆没头没尾的结论。
收集背景信息。这段代码什么时候写的、服务什么业务、最近改过什么。让 Codex review 之前,你先给它讲清楚来龙去脉,它的判断才有锚点。
明确审查目标。是找 bug、找性能瓶颈、还是评估重构成本?目标不同,提问方式完全不同。一次审查聚焦一个目标。
二、解释代码:让 AI 当翻译官
第一问永远是”这段代码在做什么?请按业务逻辑解释,不要逐行翻译。”业务视角的解释,是后续所有判断的基础。解释不清楚的地方,就是理解的第一道裂缝。
追问依赖关系。”这个函数被谁调用?它依赖哪些外部服务?数据流向是什么?”把代码放回上下文,孤立的片段看不出问题。
让它画流程。”用文字描述这段代码的执行流程,标注出可能的异常分支。”流程图式的描述,能把隐藏的控制流暴露出来。
三、找问题:分类型提问
bug 类提问:”这段代码在什么输入下会出错?边界条件处理全吗?有没有空指针、越界、并发风险?”让 Codex 扮演攻击者,比让它扮演夸奖者有用得多。
性能类提问:”这段代码的性能瓶颈在哪?时间空间复杂度如何?有没有明显的资源浪费?”重点看循环里的 IO、重复计算、大数据量拷贝。
可维护性提问:”这段代码有哪些坏味道?命名、结构、重复代码,按严重程度排序。”坏味道清单是重构的优先级依据。
四、评估重构成本:改还是不改
这是审查的核心产出。问 Codex:”如果要给这段代码加一个新功能,最小改动方案是什么?重构方案是什么?各自的成本和风险?”把选项摆上台面,决策才有依据。
让它找”最小惊讶点”。”这段代码里有哪些违反直觉的设计?新人最容易在哪里踩坑?”这些点是文档该标注、注释该加强的地方。
输出行动清单。审查结束,让 Codex 总结成”必须改、建议改、暂时别动”三档。三档清单直接进你的迭代计划,审查闭环。
五、安全审查:别漏了这一环
老代码是安全重灾区。问:”这段代码有没有注入风险、越权风险、敏感信息泄露风险?”特别是拼接 SQL、未校验的用户输入、硬编码的密钥。
依赖漏洞也查。”这段代码用到的库有没有已知的安全问题?”AI 的知识有截止期,重大项目的依赖扫描还是要靠专业工具交叉验证。
发现安全问题别慌着半夜改。按严重程度分级处理:能直接利用的先下线或加防护,理论风险排进计划。
六、审查的边界
AI 审查有两个盲区:不知道业务历史(为什么当初这么写),看不到运行时状态(实际并发量、真实数据分布)。它的结论要结合这两点打折听。
重大改动必须人审加测试。AI 的”看起来没问题”不能作为上线依据。审查报告是参考,决策权和责任永远在人。
最后,把审查结论存档。三个月后有人问”这段代码动过没有”,文档就是答案。审查的价值有一半在记录。
七、审查结果怎么落地
审查报告不落地,等于没审。把三档清单转成具体行动:”必须改”进本周迭代,”建议改”排下个版本,”暂时别动”写进文档备注。每条都有归属,清单才不会烂尾。
改动必须配测试。审查发现的问题,修完后用测试固化成果。没有测试的修复,半年后大概率原样复发。审查的终点是测试,不是补丁。
同步给相关人。审查结论抄送模块负责人和测试同学,信息对称才能协作修复。闷头自己改,改了没人知道,等于白改。
八、定期体检的机制
给老代码建体检档案。每季度一轮系统审查,记录版本、问题、处理状态。技术债透明化,排期时心里有底,不会被”突然爆雷”打得措手不及。
体检要有优先级。业务核心模块、改动频繁模块、新人接手模块,三类优先查。冷门稳定模块一年一查即可,把好钢用在刀刃上。
审查是长期主义。别指望一次体检解决所有问题,每个季度还一点,比憋大招重构健康得多。代码和人一样,定期检查才能长寿。
九、审查者的自我修养
审查者的自我修养,首先是坦诚。别为了让报告好看而报喜不报忧,也别为了显得专业而吹毛求疵。诚实是审查的生命线,一次注水,百次不信。
其次是分寸。指出问题的同时给出改进方向,只挑错不开方是耍流氓。好的审查报告,问题清单和建议一一对应。
最后是成长型思维。审查不是挑刺大赛,是帮助代码和团队变得更好。把每次审查当成共同学习,团队才愿意持续请你看。
写在最后
代码审查的终极目标,是让代码库配得上业务的野心。老代码不可怕,可怕的是没人知道它为什么烂、烂在哪。AI 让”知道”这件事的成本降到了地板上。
这个周末,挑一个你最怕的模块,让 Codex 给它做次体检。报告可能比你想象的乐观,也可能更糟,但无论如何,你终于能睡个安稳觉了。
用 AI 给老代码体检,性价比远超闷头重读。划定范围、分类型提问、输出三档清单,三步下来,祖传代码从”不敢碰”变成”知道怎么碰”。技术债不可怕,可怕的是连债主是谁都不知道。