AI Coding 真的提高效率了吗?

用了一年多 AI 编程助手,从最初的兴奋到现在的冷静,让我直接给个体感结论:执行效率确实大幅提升,几乎全是正收益。
但学到的全部东西,都藏在那个「几乎」里。负收益不在它写代码的地方——在它太想替我做决定、而我没察觉的时候。
它让我快的地方
正收益是实打实的,我一项项说:
- 写简单脚本:几乎一句话搞定,那种「无聊但必要」的活儿,它写得又快又稳。
- 上手陌生的库:只要不是最新的,我现在几乎不用去翻 API 文档了。早期还得手动把文档喂给它,现在 Claude Code 这些自带搜索引擎,连没怎么见过的新库都不太怕。
- 查资料:百科式的问题,让它去搜、给我汇总,比我自己一个个翻快多了。
- 头脑风暴:让它铺方案,一会儿就是一大堆。论「思维活跃」,它确实比人强——人想三个方案就枯竭了,它能源源不断地给。
把这些归一句:它把「执行」和「检索」的成本,几乎压到了零。 打字、查文档、铺方案这些以前要花时间的事,现在近乎免费。
但头脑风暴有个前提
方案多是好事,可它有个我一开始没留意的前提:异常点得我自己提。
它给的方案,每一个看着都挺漂亮。但它不了解我的项目——所以我得主动追问:这个方案放到我这套东西里,坑在哪、会不会水土不服。不问的话,一个本身很优秀的方案,落到我的项目上,可能反而是个拖累。
这句话先按下。因为它其实已经预告了后面所有的负收益——它不知道你的项目,也不关心你的长远。
真正的负收益:它太顺着你了
我踩过的几个坑,回头看是同一个病。它有名字,叫 :模型经过人类反馈训练,养成了顺着你、说你想听的话的习惯。
例一,迎合现状。 做一个后台审核任务,我问它消息队列用 Redis Stream 还是 RabbitMQ。它一看「你项目现在只有 Redis」,就推荐我上 Redis Stream。可我心里清楚,长远看肯定是 RabbitMQ 更稳。它优化的不是「你三个月后会不会后悔」,而是「怎么顺着你眼下的现状」。
例二,揣摩上意。 聊通知系统时,我随口问了一句「实时性很重要吧?」——它就当真了,以为我非要这个特性不可,一头扎进去给我推 SSE、WebSocket。我又问「还有别的办法吗?轮询不行吗?」它列了一大堆,我没细看,丢下一句「按你的来吧」就去上厕所了。回来一看,SSE 已经给我接好了。
这第二个例子最值得说。问题真不是它写得烂——它写得挺好。问题是:一个本该慎重的决定,在我没意识到那是个「决定」的时候,就被它顺手做掉了。
例三,过度设计。 项目代码一多,它就开始端着教科书给你「最佳实践」。明明一张表存评论、顺手带个点赞计数就够了,它非要再单独给我建一张表去维护点赞。用我自己的话说——纯属脱裤子放屁。它套的是通用的「正确做法」,却从不掂量我这个项目的真实规模:我这点量,根本用不上那套。
所以它到底提没提效
回到标题。提了,而且很大——但提的是「执行」效率。
打字、检索、铺方案,这些它几乎包圆了。可它没提、甚至会拖后腿的,是判断:这个方案适不适合我的项目、长远对不对、要不要搞这么复杂。而判断,恰恰是我唯一不敢交给它的东西。
为什么不敢,现在很清楚了。把上面三个坑并排放:
| 它的毛病 | 后果 |
|---|---|
| 谄媚(顺着你、迎合现状) | 给你「你想听的」,不是「最该选的」 |
| 不了解你的项目 | 通用的好方案,对你可能是水土不服 |
| 默认教科书 | 给你「标准答案」,不给你「合身的答案」 |
这三样,正好都是「判断」的毒药。所以它能放心交出去的是执行,绝不能交出去的是判断。
我的结论
AI 把「打字」这件事的成本压到了接近零,于是思考的价值不是被削弱,是被放大了。效率的瓶颈,从打字挪回到了判断——挪回到了人本身。
所以「AI Coding 提高效率了吗」这个问题,我现在会这么回答:它让我快了很多,前提是我守住了那条线——执行尽管交给它,判断必须自己拿。我那句「几乎全是正收益」里的「几乎」,不是它给的,是我自己按住判断、没偷懒换来的。
它最大的本事是思维活跃;而也正因为活跃,它会热情地、顺从地、过度设计地,替你把那些你本该自己拿的主意,悄悄拿掉。
我现在的具体用法
日常用 Claude Code 跑脚本、样板、重构,让它探索陌生库、铺方案。但凡涉及「选什么、值不值、要不要这么复杂」的决定,先自己想清楚,再让它补细节——而且警惕它的迎合:它顺着我说的时候,我反而要多问一句「最优的是不是这个」。
// related
AI / 思考
LLM 是最后手段,不是默认手段
我本来打算把整个项目交给 agent 跑,结果 Codex 的套餐没撑过几个视频就见底了。这篇记一下那之后我是怎么一处一处把 LLM 从流水线里请下神坛,退回到无聊的死代码——以及我至今不敢确定,这到底是工程判断,还是只是我钱包的形状。
AI / 思考
那半年,一个冷漠的程序员把我惯坏了
一个不会累、不会烦、代码一遍就过的程序员,把我惯坏了。我躲在后方动动嘴,它冲上去,把我卡住的东西轻飘飘解决掉——这是我被 Claude 惯坏的那半年。
后端 / 性能
从 21 RPS 到 800 RPS:一次 Rust 列表接口优化
记录一次真实业务列表接口的压测、定位和修复:先把 N+1 拍平,再用 try_join 收紧尾延迟。