💬 一句话导读:AI 改代码要不要逐行核对 Diff?V2EX 数十位开发者给出了四种真实答案——按风险分级、坚持人工复核、结果导向、现实妥协。没有标准答案,但有各自的代价账。

背景

在 V2EX 程序员板块,用户 sft6888 发起讨论:使用 AI 修改代码后,大家是逐行查看代码 diff,还是简单测试功能没问题就直接提交?

提问者提出了一线开发普遍遇到的矛盾:少量代码改动尚可仔细审阅,但 AI 一次性修改十几个文件时,人工审查成本很高;完全不看,又担心 AI 误修改无关代码,埋下隐患。话题发布后,收获两千多次浏览,数十位开发者分享各自日常工作中的真实做法。

不同开发者的实践观点

按项目场景分级审查

不少开发者会根据代码所属项目的重要程度,采用不同审查策略,不使用统一标准。

公司生产业务代码会进行审阅,但不一定逐行阅读。通常快速浏览改动的文件清单、代码整体结构,检查代码风格与原有项目是否匹配,重点关注业务核心模块,排查 AI 越界修改其他文件的情况。

而 POC 验证原型、个人玩具项目、临时小工具这类低风险代码,多数人会简化甚至跳过源码审查,只要功能可以正常运行即可,就算存在代码瑕疵,影响范围有限。

坚持人工审阅,重视长期风险

有一部分开发者坚持,上线生产环境的代码不能完全不看 diff。

他们提出,AI 生成的代码虽然功能可跑,但经常选用并非最优的实现方案,短期看不出问题,后续迭代扩展时会带来更高成本,积累技术债务。AI 也容易误解项目上下文,悄悄改动无关代码,这类问题单纯靠功能测试很难发现。

同时有网友提到权责问题:代码提交人承担最终线上故障责任,无法将事故原因推给 AI。这类开发者的实操习惯是,控制单次修改范围,让 AI 拆分成小 commit 与 MR,优先审视整体方案、数据流转和边界条件,而非逐行检查语法。

弱化源码阅读,依靠测试与自动化校验

很多开发者在交付压力下,不再逐行阅读 AI 产出代码,转为结果导向的工作方式。

这部分开发者将重心放在需求定义,代码实现交由 AI 完成,依靠业务测试验证需求是否落地。还有人会调用另一个 AI 做代码评审,列出潜在风险,搭配自动化测试完成校验。

尤其在 Shader、ThreeJS 图形这类复杂领域场景,AI 写出的代码本身就很难读懂,人工逐行审查不具备现实可行性,只能以最终运行效果作为判断依据。

受时间与个人能力约束的现实选择

大量回复也体现了工程里的现实妥协。

时间充裕时可以仔细审阅代码;工期紧张、需要快速交付的时候,开发者往往只做功能验证,简化代码审查环节。

还有初级开发者坦言,自身技术储备不足以看懂 AI 生成的复杂代码,客观上没办法完成详细源码 Review,只能依靠测试来兜底。

也有人采用折中的轻量审阅方式:借助 Git 工具快速扫一遍 diff,仅识别明显异常的坏味道,不会逐行细读。

参考来源

V2EX 帖子:你们用 AI 写代码,会每次都看它改了什么吗?