说实话,一开始我是真觉得AI写代码是个神器。
写了三年Java,从去年底开始密集用AI辅助编程——Hermes Agent、Claude Code、Cursor,能试的都试了。刚开始那感觉,怎么说呢,就像突然多了个随叫随到的实习生,你说需求它就写,你说改它就改,效率直接起飞。

但用了三个月之后,我开始觉得不对劲了。
蜜月期确实爽
最开始的体验是真的好。
以前写一个接口,从建Controller到写Service到拼SQL,怎么也得半小时。现在跟AI说一句"帮我写个用户注册接口,要校验手机号格式",三十秒出代码,复制粘贴就能跑。
重复性的CRUD代码?AI一把梭。写单元测试?以前最讨厌干的事,现在扔给AI几分钟搞定。甚至一些不常用的API用法,以前得查半天文档,现在直接问AI就行。
有一次赶项目,一个晚上要写四个接口,搁以前肯定得熬夜。那天我跟AI来回对话,两个多小时全搞定了,代码跑得还挺顺。
那段时间我跟朋友说:"有了AI,感觉效率至少翻了一倍。"
坑一:AI写的bug,你得自己擦屁股
转折来得很快。
有一次我让AI帮我写一个数据导出的功能,需求不复杂:从数据库查一批数据,转成Excel格式,提供下载。AI给出的代码看着挺整洁的,逻辑也通顺,我就直接用了。
上线之后,测试那边反馈:导出的数据少了一部分。
我一看,AI写的代码在处理分页查询的时候,循环条件写错了——i <= size应该是i < size,就差一个等号,但导致最后一批数据被查了两次,而中间有一批被跳过了。
这种bug,AI不会告诉你它写错了。它给你的代码看起来就是对的,逻辑完整、格式工整,你扫一眼根本发现不了问题。
更烦的是,这种边界条件的bug,往往要到实际跑数据的时候才暴露。你写代码的时候觉得"差不多了",上线才发现差那么一点。
还有一次更离谱。我让AI帮我写一个日期工具类,支持各种格式转换。代码写得漂漂亮亮,方法名取得也很规范。结果上线后发现,它用的是SimpleDateFormat而不是DateTimeFormatter——前者不是线程安全的,并发场景下会出日期错乱。
这种问题你单看代码根本看不出来,得懂Java并发编程的人才会注意到。AI只管功能实现,不管你的运行环境是什么。
后来我养成了一个习惯:AI写的代码,每一行都要自己过一遍。不是不信任它,是吃过亏了。
坑二:代码能跑 ≠ 代码能维护
第一个坑还好,顶多是多花点时间调试。第二个坑才是真正的隐患。
AI生成的代码,能跑,但不好维护。
我翻了一下三个月前AI帮我写的一些工具类代码,说实话,有些我自己都看不懂了。
变量名取得莫名其妙——data1、data2、temp、result,你根本不知道这个temp存的是什么。函数拆分也不合理,一个函数三百多行,该抽方法的地方没抽,不该合并的地方硬塞在一起。
有一次我要改一个AI写的工具类里的小功能,结果发现改动一个方法会影响另外三个方法——它们之间有隐式的数据依赖,但代码里完全看不出来。我花了两个小时才搞清楚调用链,最后发现改一个参数就行了。
我当时用的时候没觉得有问题,因为AI一直在旁边,我随时可以问它"这段代码是干嘛的"。但三个月后,AI的上下文早就没了,我对着一堆data1、temp发呆。
这就好比你请了个翻译帮你跟老外聊天,聊的时候挺顺,但事后让你看聊天记录——全是乱码。
代码不是写完就完了,它要在项目里活很久。 AI帮你写了当时的代码,但没帮你考虑三个月后的维护成本。数据说话:不是我一个人这么觉得
我之前以为这是我自己用得不好的问题,直到最近看到一组研究数据,才发现这是行业普遍现象。
METR实验室(一个知名AI研究机构)今年做了一项跟踪研究。他们发现一个很有意思的现象:2025年他们做实验的时候,开发者还能脱离AI完成编码测试;到了2026年,开发者连脱离AI做简单测试都不愿意了——不是不能,是离不开了。
更扎心的数据来了:
44%的企业AI Token消耗,用在修复AI自己生成的代码bug上。你没看错,将近一半的AI算力,不是在写新代码,而是在给AI擦屁股。
CodeRabbit分析了大量开源代码后发现,AI写的代码出问题的概率是人工代码的1.7倍。
还有更离谱的——亚马逊之前搞了个内部"Token使用量排行榜",结果员工为了冲榜疯狂调用AI,不仅刷高了Token消耗,还大幅增加了运营成本。最后亚马逊直接把这个排行榜关了。
Uber更惨,四个月就把2026全年的AI预算烧完了,但COO公开承认:高额投入并没有带来实质性的效率增长。
这些数据说明什么?AI写代码的速度确实快了,但整体效率并没有想象中那么高。 快的那部分,被修bug的时间吃掉了。

什么场景适合用AI写代码
用了三个月,踩了不少坑,我现在对AI写代码的态度是:能用,但要知道边界在哪。
适合用的场景:写新的独立函数,逻辑清晰、边界明确的那种。比如"帮我写个日期格式化函数,支持多种格式"——这种AI写得又快又好,因为逻辑简单,不容易出错。
写单元测试。这是AI最省心的用法,测试用例本身有明确的输入输出,AI不容易跑偏。我现在基本上是先写业务代码,然后让AI帮我补测试,效率提升很明显。
查API用法和语法。以前查文档要十分钟,现在问AI十秒钟,效率提升是实打实的。特别是那些不常用的API,AI能直接给你示例代码,省了不少事。
快速原型验证。想试一个想法,让AI快速写个demo跑一下,验证可行性。这种场景下代码质量不重要,能跑就行,AI非常适合。
不适合用的场景:改历史遗留代码。老代码的上下文复杂,AI不了解业务逻辑,改一处容易牵连一片,出了bug你还不好排查。
架构设计。这是需要全局思考的活,AI给的方案往往是"看起来合理但经不起推敲"。我试过让AI帮我设计一个微服务拆分方案,它给的方案单独看每个服务都挺合理,但服务之间的依赖关系一塌糊涂。
调试复杂bug。AI能帮你分析错误信息,但真要定位到根因,还是得靠你自己对系统的理解。有一次线上出了个并发bug,AI给了一堆建议,没一个靠谱的,最后还是我自己看日志加断点调试搞定的。
涉及安全和权限的代码。这种地方出了问题代价太大,不能交给AI。
给想用AI编程的朋友几句实话
第一,别被"效率翻倍"的说法忽悠了。AI确实让你写代码快了,但快的那部分可能被修bug的时间抵消了。整体效率有没有提升,得自己算。
第二,AI写的代码,每一行都要review。不要因为它看起来整洁就直接用。命名对不对、边界条件处理了没有、有没有潜在的性能问题——这些AI不会替你想。
第三,别让AI成为你的拐杖。如果你发现自己离开AI连简单代码都写不了了,那就是有问题。METR的研究已经说了,很多开发者已经"离不开了",这本身就不健康。
第四,维护成本才是大头。写代码可能只占项目生命周期的20%,剩下80%是维护。AI帮你省了写代码的时间,但如果增加了维护成本,长远看可能是亏的。
第五,该自己写的还是自己写。核心逻辑、架构设计、安全相关的东西,别偷懒扔给AI。这些地方出了问题,代价远比你省下的那点时间大得多。
我不是说AI编程没用,它确实改变了开发方式。但就跟所有新技术一样,刚出来的时候都是"神器",用久了才知道哪些是真的好用,哪些是看起来好用。
AI写代码也是一样——它是个好工具,但不是银弹。 知道什么时候用、什么时候不用,可能比会不会用更重要。
本文数据来源:METR实验室研究报告、CodeRabbit开源代码分析、金融时报报道。文中观点仅代表个人看法,不代表任何机构立场。