AI 写代码两年多,我发现自己越来越"看不进去"了

用 AI 写代码差不多两年多了,最近越来越强烈地意识到一个问题:不是 AI 写得不好,而是我自己,好像跟不上了。

刚开始那阵子是真的爽。一个需求丢过去,几分钟一堆代码就出来了,还附带一大段改动说明,写得挺认真的,逻辑也通。那会儿我还挺享受这种感觉,觉得自己的效率翻了好几倍。

但时间一长,问题就冒出来了。AI 给我一份改动说明,动辄几百字,甚至更长,我打开一看,眼睛扫过去,脑子却进不去。不是不想看,是真的看不进去------那种感觉有点像上学时读一篇特别长的说明文,字都认识,连起来却抓不住重点,看完了跟没看差不多。代码也是一样,一大坨改动摆在面前,东一块西一块,我很难把它们在脑子里串成一条线,搞清楚"这一步为什么这么改""这个函数改了会不会影响到别的地方"。

说白了,AI 写代码的速度,早就把我理解代码的速度甩在后面了。

前阵子我认真琢磨了一下这个事,倒不是想找什么灵丹妙药,就是想弄明白问题到底出在哪,然后试着调整了一下自己的习惯,感觉稍微好了一些,记录一下。

先别看说明,看 diff

我发现自己以前有个习惯不太好:AI 改完代码,我会先去读那一长串文字说明,试图靠"读懂说明"来理解改动。但后来想明白了,这个顺序反了。文字说明是最费脑子的输入方式,尤其是那种夹杂了一堆专业术语和上下文的说明,读起来比直接看代码变更还累。

现在我改成先看 diff,也就是哪几行加了、哪几行删了、哪几行改了。这个信息密度反而更低,更好消化,因为它是"具体"的,不是"抽象"的。文字说明我现在只是扫一眼,看看有没有什么大的架构层面的决定,比如换了个库、改了个数据结构之类的,剩下的细节全靠看 diff 自己判断。

任务别一次给太大

这个是我踩得最狠的一个坑。以前图省事,喜欢把一个完整的需求一口气丢给 AI,比如"帮我把这个模块从 A 方案改成 B 方案",然后它就哗哗哗给我甩出来几百行改动,外加一篇小作文。我根本没法认真 review,基本上就是扫一眼,觉得"看着没啥问题"就合并了。

现在合理很多------事情先拆开,比如先改数据层,跑通了再改接口,接口没问题了再改界面。每一步都是一个小的、能读完的改动,我可以老老实实地过一遍,甚至能提出点具体意见。小步提交这事儿其实工程上一直都提倡,只是以前觉得跟 AI 合作好像可以偷懒跳过这一步,事实证明跳不过去。

提前把规矩定死,AI 就不用啰嗦解释了

我后来发现,很多长篇说明之所以长,是因为 AI 在给我"解释它做的隐性决定"------用了哪个库、为什么这么命名、错误怎么处理的、代码风格怎么定的。这些东西每次都要重新说一遍,就显得特别啰嗦。

后来我干脆把这些东西提前定好,写进项目的约定里,比如命名规范、目录结构、报错的处理方式。这样 AI 就不用每次都花大段篇幅去交代这些"背景设定",输出会自然瘦身很多,剩下的基本就是纯粹的业务逻辑变化,读起来轻松不少。

换个角度 review,别逐行读

以前带过几年团队,帮同事 review 代码的时候,其实我从来不会逐行去读,而是先看改了哪些接口、这些接口谁在调用、有没有可能产生副作用、测试覆盖到位没有。这套习惯我后来意识到完全可以搬到看 AI 代码上------把注意力放在"边界",而不是死抠"实现细节"。只要接口靠谱,测试能兜底,内部具体怎么实现的,其实可以适当放权,不用每一行都较真。

这个心态转变对我帮助挺大的,因为逐行读代码本来就是个体力活,而且很容易读着读着就走神,反而边界和接口这种关键节点更容易抓住重点。

让测试帮我验证,而不是靠"看懂"来验证

以前我对代码"没问题"的信心,几乎完全来自"我看懂了"。现在想想这个逻辑挺脆弱的,因为看懂不代表没 bug,尤其是 AI 写的代码,逻辑可能是对的,但细节里藏着坑。

现在我会要求每次改动都配一套测试,单元测试也好集成测试也好,让"测试通过"成为我信心的主要来源,而不是死磕"我是不是每一行都看明白了"。这样一来,读代码的目的就变了------不是为了验证它对不对,而是为了了解它的设计思路,压力小了很多,读起来也更从容。

直接要求 AI 说人话

最后一个改变其实最简单,也最容易被忽略:我开始在提示词里直接提要求,让它别写小作文,改成"一句话说清楚改了什么,列 3-5 个关键决策点,如果有风险点单独提一下"。

效果立竿见影,篇幅一下子就收窄了。以前那种铺天盖地的说明文风格,说到底也是 AI 在"尽力表现自己很认真",但对我来说信息密度太低了。明确要求它精简、结构化,它是完全做得到的,只是我以前没提这个要求而已。


写到这儿回头看,其实这些调整没有一个是什么新鲜招数,说白了都是软件工程里早就存在的老规矩------小步提交、关注接口、测试兜底、约定优先于配置。只是以前跟 AI 合作的时候,总觉得"AI 都帮我干了,我是不是可以偷个懒",结果发现该守的规矩一个都少不了,甚至因为 AI 写代码的速度太快了,这些规矩比以前更重要了。

现在的状态是,代码量没少写,但我读起来轻松多了,也更敢说自己是"真的理解了这段代码",而不是"AI 说没问题我就信了"。这个转变对我来说挺重要的。

相关推荐
全栈弄潮儿1 小时前
不要先问“用哪个 AI”,先盘点你的开发工作流
aigc·openai·ai编程
BingoGo2 小时前
PHP clone 之后,为什么改副本会影响原对象?
后端·php
JaguarJack2 小时前
PHP clone 之后,为什么改副本会影响原对象?
后端·php·服务端
杨杨杨大侠2 小时前
大模型的权重到底怎么用?拆开一个 token 的生成过程
aigc·openai·ai编程
小灰灰搞电子2 小时前
Rust+Slint 实现动态消息提示框源码分享
开发语言·后端·rust
小奏技术3 小时前
10 MB 的 Postman 替代品,启动不到 1 秒
后端
东风破_3 小时前
Text2SQL :用自然语言操作 SQLite 数据库
人工智能·后端
吴佳浩 Alben3 小时前
Agent 怎么做自动化评测?构建端到端的 Agent Evaluation 体系
人工智能·语言模型·架构·自动化·ai编程
宿6743 小时前
vue3-包管理器
前端·vue.js
小虎AI生活3 小时前
从四大模型一周连发看企业 AI 落地,为什么 95% 的试点不赚钱
ai编程