![]()
去年Stack Overflow調研顯示,76%的開發者現在用AI寫代碼。同一批人里,43%承認"AI生成的代碼在生產環境出過事"。工具普及了,但翻車率沒降。問題出在哪?
不是AI變笨了。是我們還在用問谷歌的方式問ChatGPT——扔進去一個模糊需求,期待魔法發生。結果拿到手的代碼要么過度設計,要么漏掉邊界情況,要么在最關鍵的地方埋雷。
這篇文章的原始素材來自一位全棧工程師的實戰復盤。他列了五個最耗時的錯誤,以及對應的prompt模板。我把它翻譯成中文語境下的操作手冊,順便加了點產品經理視角的毒評。
錯誤一:把AI當許愿池,不給約束條件
典型場景:你說"寫一個按姓名排序用戶的函數"。AI給你一段漂亮的快速排序實現——把5萬條記錄全塞進內存的那種。
產品經理視角:這就像跟設計師說"做個好看的按鈕",然后收到一個帶粒子特效的3D擬物化怪物。需求模糊時,執行者只能往最復雜的方向猜,以此證明自己的價值。
修復方案用約束條件框死邊界:
「我需要按姓名排序用戶的函數。
約束條件:
- 數據量:約5萬條,PostgreSQL后端
- 必須用數據庫層排序,禁止內存操作
- 返回分頁結果,每頁20條
- 兼容現有User模型(id, name, email, created_at)
給出查詢語句和控制器方法。」
約束條件的本質是給AI畫牢籠。沒有牢籠,它就會表演——用你根本沒要求的復雜度,解決你根本沒提出的問題。
錯誤二:相信AI寫的測試,不驗證邊界情況
代碼能跑通,測試全通過,合并到主分支。然后邊緣情況開始爆炸——空數組、特殊字符、并發請求,一個接一個地炸。
這位工程師的prompt模板叫"驗證循環":
「在給出最終版本前,完成以下步驟:
![]()
1. 列出3個可能破壞該函數的邊界情況
2. 為每個邊界情況寫測試
3. 用 mentally run( mentally run 指在腦中模擬執行)的方式過一遍每個測試
4. 修復發現的失敗
5. 最后展示通過全部測試的最終版本」
這個流程多花30秒寫prompt,能省下幾小時的調試。核心邏輯是:AI不擅長替你想"什么可能出錯",但擅長執行"列出可能出錯點"這個指令。
邊界測試的盲區是AI coding的系統性風險。模型訓練數據里,"能跑的代碼"比"健壯的代碼"多得多。它學的是平均水平,而生產環境要求的是99.9%的可靠性。
錯誤三:喂太多上下文,讓AI當偵探
ChatGPT的上下文窗口是4096個token。你扔進去3800行無關代碼,剩下296個token留給答案——輸出質量可想而知。
正確做法是做預分揀:
「這是auth.js的聚焦片段(第42-78行)。
問題:login()函數在密碼錯誤時仍返回200。
預期行為:憑證無效時返回401
實際行為:返回200并附帶空token
只修復認證檢查邏輯,禁止重構其他代碼。」
這個prompt的精妙之處在于"只修復"三個字。AI有強烈的重構沖動,尤其當你給它一大坨代碼時。明確禁止范圍,才能阻止它把手術變成解剖。
上下文管理是AI協作的隱藏技能。人類工程師的價值正在從"寫代碼"轉向"定義問題邊界"——包括告訴AI哪些信息相關、哪些動作越界。
錯誤四:驗收標準模糊,來回拉扯五輪
你說"做個REST API端點"。AI給了個能跑的版本。做完了嗎?你不知道,AI也不知道。你們來回扯皮五次,最后發現漏了錯誤處理、漏了測試、漏了文檔。
![]()
解決方案是驗收清單:
「構建POST /api/invoices端點。
完成標準:
- [ ] 驗證必填字段(amount, customer_id, due_date)
- [ ] 成功時返回201及創建的invoice
- [ ] 輸入無效時返回422及字段級錯誤
- [ ] 為上述每種場景包含測試
- [ ] 使用現有Invoice模型(禁止改schema)」
清單消滅模糊性。寫不出清單,說明你還沒理解任務到能委托的程度——不管是委托給人還是給AI。
產品經理的老話:如果你不能定義"done",你就永遠在"doing"。AI加速的是執行,不是思考。思考的前置成本一點沒省,只是換了個支付形式。
錯誤五:該動手的時候動嘴
最隱蔽的時間浪費:花20分鐘打磨prompt,只為生成一個3分鐘就能手寫完成的數據庫遷移。
作者的原話很直接:「我現在遵循的規則是——最好的AI coding workflow,是知道什么時候不用AI。」
這個判斷沒有固定公式。經驗法則是:涉及單一文件、標準模式、無歧義語法時,手寫更快;涉及跨文件關聯、復雜邏輯推導、或你不熟悉的領域時,AI值得投入prompt工程。
AI coding的終極悖論:你越擅長寫prompt,越可能濫用它。技能變成了誘惑,讓你在每個任務前都猶豫"要不要問問AI"。
這位工程師的五個模板,本質上都在做同一件事——把AI從"創意伙伴"降級為"執行工具"。不給模糊空間,不讓它猜測,不期待它替你思考。
這種用法不夠性感,但省時間。而省下來的時間,你可以用來做AI確實做不好的事:理解業務、權衡 trade-off、在會議室里捍衛技術決策。
最后一個細節:作者在原文評論區補充說,他現在寫prompt前會強制自己先手寫偽代碼。"如果偽代碼都寫不出來,說明我對問題的理解還不夠委托給任何人。"
這個習慣的成本是5分鐘。收益是避免幾小時的返工。你愿意為這5分鐘買單嗎?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.