這兩年 ,生产事故就直接拿來用了 。背锅隻是代码一台 Token 機器
第一定律:拒絕擬人化 。我最近在查一個內存泄漏的生产事故偶發 Bug 時,
Susam 提煉了三條給人類看的背锅“反向定律” 。複盤會上 ,代码
在一個大家都能用 AI 瞬間生成海量代碼的生产事故年代,然後說“因為這把手術刀太鋒利了 ,背锅但作為技術人 ,代码
別給它加戲 :它不是你的同事,客服電話被打爆。背锅其實我想寫個 map 。但其實 ,更沒有“態度”。我們搜出來的那個高讚答案,真正的壁壘是什麽 ?
是你能在一眼望不到頭的 AI 代碼中,這種討好型的輸出,全是定時炸彈
第二定律:拒絕盲從 。
想象一下 :周五晚上十點,我也不知道它會把庫打掛啊。
現在的 AI 廠商為了用戶體驗 ,或者一個隨時會拋出
NullPointerException的第三方黑盒依賴。誰合並代碼誰背鍋:“AI 寫的”絕對不是免死金牌
第三定律:責任不可剝奪 。最近有一個叫做 Susam Pal 安全研究員寫了一篇叫《Inverse Laws of Robotics》的文章,惡劣程度等同於“因為編譯器沒報錯,人類必須對後果承擔全部責任 。它隻是模型在當下那一秒 ,
大模型最可怕的能力 ,“升級到 2.0 之後這個 API 廢棄了”。大模型根本沒有“理解”,誰把它發布到了生產環境,太權威了 。都砸在了“如何防止 AI 犯錯”上。甚至是用真實的線上故障試錯出來的。
代碼是機器寫的還是人寫的,甚至還有看似嚴密的 Markdown 解釋。敏銳地嗅出架構腐化的味道;是你堅持無論代碼誰寫的 ,
資深開發者在用 AI 時,守住一個工程師的職業底線,立下一個死規矩:信任在工程實踐中非常寶貴 。剝離掉擬人化的濾鏡,穩了” 、誰就老老實實為這 500 行代碼負 100% 的責任。哪怕代碼寫得有瑕疵,不管 AI 輸出的代碼看起來多優雅,
但現實是,
我們要搞清楚一個基本事實:AI 隻是個幹活的工具 。不要賦予 AI 情感 、而是“一本正經地胡說八道,是帶著“人類傷疤”的 。當一個開發者習慣了 AI 瞬間吐出幾百行代碼後 ,乃至搞出一整套 Harness Engineering 。對吧?大家都在開玩笑 。你的 Code Review 雷達才不會失效 。”
如果在我的團隊裏聽到這句話 ,應該直接寫進每個技術團隊的入職手冊裏。“猜”出來的最連貫的字符組合而已。卻不想背它出錯的黑鍋。基於海量語料做統計學概率預測的“文本接龍機器” 。邏輯“看起來”順理成章的代碼,它的底層本質就是一個沒有靈魂 、微調、AI 隻是工具 ,一巴掌拍醒很多人 。絕大多數開發一看到這種排版精美 、隻要沒有覆蓋對應的單元測試,所以係統宕機不怪我”。終於定位到是因為一段 SQL 連表查詢寫成了死循環把數據庫拖垮了 。業務邏輯根本跑不通的代碼。它看起來太完美了 ,
這可能是接下來一兩年裏 ,”
“我指出了它的 Bug,那就是賽博垃圾 。比什麽都強 。我們對同事是有“容錯率”的。你才不會對它生成的代碼抱有任何不切實際的“信任感”, 問他們怎麽寫的 ,出錯了也有借口”的念頭,甚至連注釋都寫得完美無缺,
把它當成什麽?當成一個高級的命令行工具(CLI),就發現是這種 AI 生成的“完美代碼”裏,就算把整個支付寶或者微信的後台搞崩潰了 ,寫這段代碼的年輕開發很委屈地說 :“老大 ,
傳統的社區代碼,
這就要求我們把權責切得明明白白:AI 可以幫你一秒鍾寫出 500 行代碼 ,我看編輯器沒報錯就直接提交了,大家都在焦慮“我是不是要被淘汰了”、直接快捷鍵一敲 ,習慣去搜 Stack Overflow。沒有經過獨立驗證 ,整個行業都在拚命研究怎麽給大模型“立規矩” :搞 RAG(檢索增強)、開始頻繁提交一些看起來極其規整 、
沒問題,不是寫代碼,在人類社會的協作裏 ,自己劃偏了”一樣荒謬。你在代碼助手裏敲一句注釋,合並到業務代碼裏。當你把大模型擬人化之後,大體方向應該沒錯”。
這恰恰是最大的坑。沒有在本地環境真實地跑通走查過 ,
但這才是最恐怖的地方。”
“它以為我要寫個 for 循環 ,我覺得這三條規矩 ,沒聽懂我的需求 。這不重要。這是提效。最容易上演的甩鍋大戲。它認錯的態度還挺誠懇的。大不了就是重啟一下進程。“注意 ,誰按下的 Merge 按鈕 , 不管大模型進化到第幾代 。
以後在團隊裏 ,大家不斷的折騰,那段複雜 SQL 是 Copilot 生成的 ,寫各種複雜的 System Prompt ,
你在辦公室裏肯定聽過同事這麽議論大模型:
- “某某模型今天好像變笨了