- “某某模型今天好像变笨了,没听懂我的需求。”
- “我指出了它的 Bug,它认错的态度还挺诚恳的。”
- “它以为我要写个 for 循环,其实我想写个 map。”
听起来没什么大不了的,对吧?大家都在开玩笑。但作为技术人,这种习惯非常致命。
现在的 AI 厂商为了用户体验,把模型的语气微调得极其谦卑。动不动就对你说“抱歉,您说得对,我马上改”。这种讨好型的输出,会在潜意识里给你一种错觉:你在和一个虽然有点粗心,但脾气极好、非常听话的初级程序员沟通。
这恰恰是最大的坑。
在人类社会的协作里,我们对同事是有“容错率”的。如果一个实习生态度很好,哪怕代码写得有瑕疵,你也会下意识地宽容他,甚至帮他把逻辑补齐。当你把大模型拟人化之后,你的大脑就会不自觉地套用这种“社交直觉”。你会放松警惕,觉得“它都这么努力理解我了,大体方向应该没错”。
但现实是,大模型根本没有“理解”,没有“以为”,更没有“态度”。不管是 GPT 还是 Claude,它的底层本质就是一个没有灵魂、基于海量语料做统计学概率预测的“文本接龙机器”。
资深开发者在用 AI 时,心里应该有一堵极度冷酷的墙:不要对它说“请”和“谢谢”,不要把它当人看。
把它当成什么?当成一个高级的命令行工具(CLI),或者一个随时会抛出NullPointerException的第三方黑盒依赖。剥离掉拟人化的滤镜,你才不会对它生成的代码抱有任何不切实际的“信任感”,你的 Code Review 雷达才不会失效。
别被排版糊弄了:没跑过验证的代码,全是定时炸弹
第二定律:拒绝盲从。绝不能盲目信任 AI 的输出。没有经过独立验证,绝不能将 AI 的结果视为权威。
以前我们遇到搞不定的 Bug,习惯去搜 Stack Overflow。我们搜出来的那个高赞答案,底下往往跟着一堆评论:“哥,稳了”、“注意,这个方法在多线程下会死锁”、“升级到 2.0 之后这个 API 废弃了”。
传统的社区代码,是带着“人类伤疤”的。它经过了无数同行的 Peer Review,甚至是用真实的线上故障试错出来的。
但是现在,你在代码助手里敲一句注释,它“唰”地一下给你生成了一大段代码。有高亮、有缩进、甚至还有看似严密的 Markdown 解释。它看起来太完美了,太权威了。
但这才是最恐怖的地方。这段代码没有任何人做过审查。它只是模型在当下那一秒,“猜”出来的最连贯的字符组合而已。
现实中,绝大多数开发一看到这种排版精美、逻辑“看起来”顺理成章的代码,大脑的思考机制就会自动关机,直接快捷键一敲,合并到业务代码里。我最近在查一个内存泄漏的偶发 Bug 时,就发现是这种 AI 生成的“完美代码”里,漏写了一个很不显眼的资源释放逻辑。
大模型最可怕的能力,不是写代码,而是“一本正经地胡说八道,并且让你深信不疑”。
以后在团队里,立下一个死规矩:信任在工程实践中非常宝贵。不管 AI 输出的代码看起来多优雅,只要没有覆盖对应的单元测试,没有在本地环境真实地跑通走查过,那就是赛博垃圾。