摘要:最新调查显示,96%的开发者认为 AI 生成的代码"不靠谱",但只有 48%的人会在提交前检查。这是什么神仙操作?明知道有毒还往嘴里塞?本文带你深扒这个魔幻现实:当"不信任"遇上"懒得查",我们的代码库正在变成一座座定时炸弹。
01. 一份让人窒息的调查报告
2026 年 1 月,代码质量公司 Sonar 发布了一份调查报告,采访了全球 1100 多名开发者。
报告里有两个数字,放在一起看,简直让人血压飙升:
96% 的开发者认为:AI 生成的代码在功能上不正确。
48% 的开发者表示:我会在提交前检查 AI 生成的代码。
等等,让我算一下……
不信任AI代码的人:96%
会检查AI代码的人:48%
那剩下的 48% 呢?
他们的心路历程大概是这样的:
├─ "这代码肯定有问题"
├─ "但我懒得看"
├─ "先提交了再说"
├─ "出了bug再修呗"
└─ "反正锅又不是我一个人背"
这是什么神仙逻辑?
明知道前面是坑,还闭着眼往里跳?
这就好比:
- 96%的人觉得外卖不卫生,但 48%的人还是天天点
- 96%的人知道熬夜伤身,但 48%的人还是凌晨三点刷手机
- 96%的人认为 AI 代码有 bug,但 48%的人还是直接 commit
这届打工人,懒得连命都不要了。
02. 亚马逊 CTO 的灵魂拷问
在 AWS re:Invent 2025 大会上,亚马逊 CTO Werner Vogels 说了一段话,直接戳中了所有人的痛点:
"现在,世界正在改变。你会写更少的代码,因为生成太快了。你会审查更多的代码,因为理解它需要时间。
当你自己写代码时,理解是伴随着创作过程产生的。
当机器写代码时,你必须在审查过程中重建这种理解。
这就是所谓的验证债务(Verification Debt)。"
验证债务。
这个词太精准了。
以前我们欠的是技术债务——为了赶工期写的烂代码,迟早要还。
现在我们欠的是验证债务——AI 写的代码,你根本没看懂就提交了,迟早要爆。
技术债务の形成过程:
├─ 产品:这个功能明天要上线
├─ 程序员:好的,我先糊一个
├─ 代码:[一坨能跑但很烂的代码]
├─ 程序员:以后再重构吧
└─ 以后:从未到来
验证债务の形成过程:
├─ 程序员:Claude,帮我写个用户认证
├─ AI:[吐出200行看起来很专业的代码]
├─ 程序员:哇,好长,看着挺对的
├─ 程序员:[没仔细看就commit了]
├─ 代码:[藏着3个安全漏洞和2个逻辑bug]
└─ 三个月后:线上事故,P0级别
技术债务是你自己挖的坑,你至少知道坑在哪。
验证债务是 AI 帮你挖的坑,你连坑在哪都不知道。
03. 那些"看起来对,但其实不对"的代码
调查报告里还有一个数据:
53% 的开发者表示,AI 生成的代码最大的问题是:看起来正确,但实际上不正确。
这才是最可怕的。
如果 AI 生成的代码一眼就能看出问题,那还好办。
问题是,AI 写的代码往往看起来特别专业:
但是……
// AI 生成的"完美"代码
async function transferMoney(from: string, to: string, amount: number) {
// 检查余额(看起来很专业)
const balance = await getBalance(from)
if (balance < amount) {
throw new Error("Insufficient balance")
}
// 执行转账(看起来很完整)
await deductBalance(from, amount)
await addBalance(to, amount)
// 记录日志(看起来很规范)
await logTransaction(from, to, amount)
return { success: true }
}
// 问题在哪?
// 1. 没有事务处理:如果 addBalance 失败,钱就凭空消失了
// 2. 没有并发控制:两个请求同时来,余额可能被扣成负数
// 3. 没有幂等性:网络重试可能导致重复转账
// 4. 日志失败会导致整个操作失败
// 但是,这段代码能跑。
// 而且,看起来很对。
// 直到有一天,用户发现钱没了。
AI 代码的危险之处,不在于它写得烂,而在于它写得"看起来不烂"。
它就像一个穿着西装、谈吐得体的骗子。你很难一眼看穿它。
04. 为什么我们明知有问题还不检查?
让我们诚实地面对这个问题:为什么 48%的人不检查 AI 代码?
原因一:太长了,懒得看
AI 生成的代码:200行
你的耐心:20行
你的内心独白:
"这也太长了吧……"
"算了,看起来挺对的"
"先提交了,有问题再说"
原因二:看不懂
AI 经常用一些你不熟悉的 API、设计模式、或者"最佳实践"。
你:这个 useTransition 是干嘛的?
你:这个 AbortController 又是什么?
你:算了,能跑就行
原因三:时间压力
产品经理:这个功能今天能上吗?
你:AI帮我写了,我还没来得及看……
产品经理:能跑吗?
你:能跑。
产品经理:那就上吧。
你:好的。
[三天后]
线上告警:🔴🔴🔴🔴🔴
原因四:过度信任
你的潜意识:
├─ "AI比我聪明"
├─ "AI读过所有的代码"
├─ "AI不会犯低级错误"
├─ "AI写的肯定比我写的好"
└─ "我检查它?我配吗?"
原因五:责任分散
你的心理防线:
├─ "反正不是我一个人用AI"
├─ "大家都这么干"
├─ "出了问题也不是我一个人的锅"
├─ "Code Review 的时候别人会看的"
└─ "测试会发现的吧"
这五个原因加在一起,就构成了一个完美的"甩锅链条"。
05. 调查报告里的其他魔幻数据
让我们继续看这份报告里的其他数据:
数据一:AI 代码占比飙升
2023年:6% 的代码有AI参与
2026年:42% 的代码有AI参与
2027年(预测):65% 的代码有AI参与
三年时间,从 6%到 42%,翻了 7 倍。
这意味着什么?
意味着你现在看到的代码,有将近一半是 AI 写的。
而且,你可能根本分不清哪些是 AI 写的,哪些是人写的。
数据二:审查 AI 代码比审查人类代码更累
38% 的人说:审查AI代码比审查人类代码更费劲
27% 的人说:审查AI代码比审查人类代码更轻松
为什么审查 AI 代码更累?
因为人类写的代码,你能猜到他的思路。
AI 写的代码,你得先搞清楚它在想什么——如果它真的在"想"的话。
数据三:AI 并没有减少"苦力活"
报告里有一句话特别扎心:
"尽管 75%的开发者说 AI 减少了苦力活(技术债务、调试遗留代码等),但现实是,AI 只是把这些工作转移到了新的领域——比如'修正或重写 AI 生成的代码'。"
以前的苦力活:
├─ 写样板代码
├─ 调试遗留系统
├─ 处理技术债务
└─ 平均占用时间:23-25%
现在的苦力活:
├─ 审查AI代码
├─ 修复AI的bug
├─ 重写AI的烂代码
└─ 平均占用时间:23-25%
苦力活的总量:没变
苦力活的内容:变了
AI 没有消灭苦力活,只是换了一种苦法。
06. 35%的人用私人账号写公司代码
报告里还有一个细思极恐的数据:
35%的开发者用私人 AI 账号写公司代码。
这意味着什么?
场景一:数据泄露
├─ 你把公司代码贴给ChatGPT
├─ ChatGPT用你的代码训练模型
├─ 你的竞争对手问ChatGPT类似问题
├─ ChatGPT吐出了你公司的代码
└─ 恭喜,你成功泄露了商业机密
场景二:合规风险
├─ 公司有代码审计要求
├─ 你用私人账号生成代码
├─ 审计的时候查不到记录
├─ 出了安全问题追溯不到源头
└─ 恭喜,你成功给公司埋了雷
场景三:版权问题
├─ AI生成的代码可能包含开源代码片段
├─ 这些代码可能有GPL等传染性协议
├─ 你把它用在了商业项目里
├─ 律师函警告
└─ 恭喜,你成功给公司招来了官司
用私人账号写公司代码,就像用私人邮箱发公司机密一样危险。
但 35%的人还在这么干。
07. 程序员の自救指南
说了这么多问题,该聊聊怎么办了。
策略一:建立"AI 代码必审"的习惯
错误做法:
├─ AI生成 → 看一眼 → 提交
└─ 耗时:30秒
正确做法:
├─ AI生成 → 逐行阅读 → 理解逻辑 → 测试 → 提交
└─ 耗时:10分钟
你省下的30秒,可能会在未来花30小时来还债。
策略二:让 AI 自己写测试
既然你不信任 AI 的代码,那就让 AI 自己证明它的代码是对的。
Prompt 示例:
"请为这段代码写单元测试,覆盖以下场景:
1. 正常情况
2. 边界条件
3. 异常处理
4. 并发场景
5. 你能想到的所有可能出错的地方"
让 AI 自己打自己的脸,是最高效的验证方式。
策略三:用 AI 审查 AI
流程:
├─ AI-1 生成代码
├─ AI-2 审查代码(用不同的模型)
├─ 你审查AI-2的审查意见
└─ 最终决定
这叫"以毒攻毒"。
策略四:建立团队规范
团队规范示例:
├─ 所有AI生成的代码必须标注来源
├─ AI代码必须有对应的测试用例
├─ Code Review时必须说明AI参与程度
├─ 关键业务逻辑禁止直接使用AI代码
└─ 使用公司提供的AI工具,禁止私人账号
策略五:保持"健康的不信任"
正确的心态:
├─ AI是工具,不是神
├─ AI会犯错,而且经常犯错
├─ AI的错误往往很隐蔽
├─ 最终责任在你,不在AI
└─ 你的工资不是白拿的
08. 结语:信任是奢侈品,验证是必需品
写到最后,我想说:
在 AI 时代,"信任"是奢侈品,"验证"是必需品。
你可以不信任 AI——事实上,96%的人都不信任。
但你不能因为不信任就不检查——那只会让问题更严重。
不信任+不检查=灾难
不信任+检查=安全
这道选择题,其实很简单。
问题是,你愿不愿意花那 10 分钟。
最后,送给所有程序员一句话:
"AI 写的代码,就像实习生写的代码:你可以用,但你必须审。"
别让你的懒惰,成为下一个 P0 事故的导火索。
看完觉得后背发凉?点个"在看",转发给你那些"直接 commit"的同事。
也欢迎在评论区分享:你会检查 AI 生成的代码吗?检查到什么程度?
毕竟,代码库里的雷,迟早要有人踩。希望那个人不是你。 💣