
当工程师开始把「AI写的」当借口,技术团队的底线正在悄悄塌陷。
设想一个周五晚上十点的场景:
系统挂了,客服电话被打爆。
全员拉群排查,定位到一段把数据库拖垮的死循环 SQL。
复盘会上,写这段代码的年轻工程师很委屈:
"那段 SQL 是 Copilot 生成的,我看编辑器没报错就直接提交了,我也不知道它会把库打挂啊……"
这句话,正在越来越多的线上事故复盘会上出现。
与此同时,一个叫 Susam Pal 的安全研究员写了篇文章,题目叫《Inverse Laws of Robotics》,抛出一个让很多人不舒服的判断:
Susam Pal · 核心判断
阿西莫夫花一辈子给机器人定规矩。但现在最危险的,不是机器人,而是屏幕前那个使用机器人的人类。
我们把所有工程资源都砸在「如何防止 AI 犯错」上——却忘了最大的风险来自于使用 AI 的人。
他提炼出三条给人类看的「反向定律」。每条都像一巴掌,打在每天用 AI 写代码的工程师脸上。
别给它加戏
它不是你的同事,只是一台 Token 机器
你有没有听过团队里这种对话——
"Claude 今天好像变笨了,没听懂我的需求。"
"我指出了它的 Bug,它认错的态度还挺诚恳的。"
"它以为我要写 for 循环,其实我想写 map。"
听起来像在聊一个初级程序员 ↑
问题就出在这里。
AI 厂商为了用户体验,把模型调得极其谦卑。
一说错就「抱歉,您说得对,我马上改」,久而久之,你脑子里会形成一个错误的模型:
错误认知
「脾气好的
初级程序员」
→ 放松警惕,默认宽容
事实
「统计学
文本接龙机器」
→ 没有理解,只有概率预测
资深工程师该怎么看待 AI?
当成一个随时会抛出 NullPointerException 的第三方黑盒依赖,不说「请」和「谢谢」,不猜它的「意图」,更不对它生成的代码抱任何不切实际的信任感。
别被排版糊弄了
没跑过验证的代码,全是定时炸弹
以前遇到搞不定的 Bug,去 Stack Overflow 搜高赞答案,底下跟着一堆评论:
✓ "哥,稳了,我们生产跑了半年没问题"
⚠ "注意!多线程下这个方法会死锁"
✗ "升到 2.0 之后这个 API 废弃了,别用了"
传统社区代码,带着「人类伤疤」——经过无数同行真实踩坑验证过的
但现在,你在代码助手里敲一句注释,它唰地生成了一大段代码。
高亮、缩进、甚至还有看似严密的 Markdown 解释。
这段代码的真实身份
没有任何一个人类工程师 Review 过
没有经过任何真实场景的试错
只是模型在那一秒「猜」出来的最连贯字符组合
大模型最可怕的能力,不是写代码——
是「一本正经地胡说八道,并且让你深信不疑」
在一次排查内存泄漏的偶发 Bug 时,发现罪魁祸首正是这种「完美代码」:逻辑顺畅,注释规整,就是漏写了一个最不显眼的资源释放。
🔒 团队铁规
AI 输出的代码,无论多优雅——没有单元测试覆盖、没有在本地真实跑通走查过,一律视为赛博垃圾,不得合并。
谁合并代码谁背锅
「AI 写的」绝对不是免死金牌
回到开头那个复盘会的场景:
「AI 写的,不是我的锅」这句话,恶劣程度等同于外科医生手术做砸了,说「因为手术刀太锋利,自己划偏了」。
一次 AI 代码上线 · 责任链
AI 生成代码
工具,不背房贷,不被开除,大不了重启进程
工程师 Review 代码
责任开始转移——你看了,你就要对「看没看出问题」负责
按下 Merge 按钮
这是关键节点。你的手,你的责任。
发布生产环境
100% 的责任,归你,不管这段代码是谁写的
工程责任 · 基本公式
AI 帮你写了 500 行代码 → 提效,没问题
+
你审查 + 你合并 + 你发布
= 你对这 500 行代码
负 100% 的责任
不能光占 AI 帮你摸鱼的便宜,却不想背它出错的黑锅。
一旦心里有了「出错了反正有借口」的念头——那个念头本身,就比任何 Bug 都危险。
AI 写代码的速度越快,对工程师基本功的考验反而越苛刻。
在一个所有人都能 10 秒生成 500 行代码的时代,敲键盘的手速早就不是壁垒了。
真正的壁垒是:能在一眼望不到头的 AI 代码里,一眼嗅出架构腐化的味道。
能在 AI 代码里,嗅出架构腐化的味道
坚持无论谁写的代码,测试覆盖率的底线不动摇
始终清醒:AI 是工具,方向盘和刹车攥在自己手里
写 给 每 个 按 过 Merge 的 工 程 师
大模型进化到第几代都好。
工程师的职业底线,
不能外包给任何工具。
打铁还需自身硬。一直都是。
夜雨聆风