Vibe Coding 狂歡下的“架構之殤”:當我試圖讓 AI搞定一個“簡單”的認證
本文以一個資深研發的視角,客觀(且充滿吐槽)地探討了“Vibe Coding”(姑且翻譯為“憑感覺編程”)現象。一方面,它極大地降低了創新門檻,讓“全民開發”成為可能;另一方面,當這種模式被應用于嚴肅的、系統性的工程(如一個標準的多租戶認證模塊)時,它所暴露出的“架構缺失”和“點對點滅火”的陷阱,足以讓最資深的工程師抓狂。
不貶低,不神話,客觀對待
一、 Vibe Coding 的“黃金時代”:創新的民主化
我們必須承認,我們正處在一個“Vibe Coding”的黃金時代。
在過去,實現一個想法,你需要:??產品經理 -> UI/UX -> 前端 -> 后端 -> 運維??。而現在,你只需要一個(越來越聰明的)AI 助手,和一個(越來越模糊的)“Vibe”(感覺、想法)。
大量的非技術人員,通過向 GPT、Claude 或 Copilot 描述他們的“Vibe”,成功地“搓”出了無數小工具、小眾需求的解決方案。這極大地滿足了市場的長尾需求,這是“全民創新”的巨大勝利,值得肯定。
對于簡單產品、獨立腳本、或者“一次性”工具,Vibe Coding 幾乎是完美的。它的開發效率,約等于“說人話”的速度。
二、當“資深 Vibe” 遇上 “AI Vibe”:認證模塊的“死循環地獄”
問題來了。當一個資深研發,試圖將這種高效的“Vibe”模式,應用到一個需要強一致性、高安全性和多端兼容的復雜產品時,噩夢開始了。
我的需求很明確:一個支持多用戶、數據隔離、多端(Web, App)通用的產品。我卡住的環節很“基礎”:Web 認證(Auth)。
我天真地以為,Copilot(或 GPT-5, Claude 4.5)能幫我處理掉這些“臟活累活”。我開始“Vibe”:
? “我需要一個基于 JWT 的認證系統。”
? “幫我加上 refresh token 機制。”
? “確保 cookie 是??HttpOnly??? 和??Secure?? 的。”
? “哦對了,這是個多租戶系統,認證必須隔離??tenant_id??。”
? “為什么我的 Express 中間件拿不到用戶信息?”
然后,我就掉進了那個“耗費了我 20% API 請求量”的兔子洞。
AI 的反應模式是極其“短視”的。這可以叫“點對點的滅火式開發”。
1.它沒有“架構圖”:當我提到“中間件拿不到用戶信息”時,AI 會立刻“修復”中間件的代碼。它不會全局反思:“是不是因為在登錄路由里,我簽發 JWT 時就忘了把??tenant_id?? 放進 payload?”
2.它(事實上的)“失憶癥”:當我為了解決一個 CORS 問題,修改了 Nginx 配置(或者 Express 的??cors?? 插件)后,再去調試 Cookie 問題時,AI 已經完全忘記了 5 分鐘前我們對 CORS 做了什么。它可能會給出一個與之前配置相沖突的“新建議”。
3.“滅火”導致“縱火”:為了“修復”A 端(Web)的 Cookie 策略,它可能會破壞 B 端(App)基于??Authorization?? 頭的 Token 校驗邏輯。因為它沒有“多端通用”這個全局約束的心智模型。
三、技術拆解:為什么 AI 在“架構”面前如此無力?
我們吐槽 AI,但也要技術性地分析它為什么會“循環”。
AI(大型語言模型)的核心是“基于上下文的下一個最優Token預測”。
一個 Web Auth 系統,是什么?它不是一個“函數”,它是一個“狀態機”和“契約”。
它涉及:
?狀態流轉:??請求 -> 中間件檢查 -> 路由處理 -> 數據庫讀寫 -> 簽發 Token -> 設置響應頭 -> 客戶端存儲 -> 下次請求攜帶??
?多方契約:客戶端、服務端、數據庫之間,關于“你是誰”的信任協議。
而 AI 呢?它拿到的是你那幾千個 Token 的“上下文切片”。
?初級程序員 > AI:一個初級程序員,在解決“登錄不上”的問題時,他會(笨拙地)在登錄路由??console.log???,然后去中間件??console.log??,他至少知道這兩個東西是線性關聯的。
?AI 的短板:AI 不知道。你給它中間件的代碼,它就只看中間件。你給它登錄路由的代碼,它就只看登錄路由。它無法(或者說極難)在沒有被“喂”入全部代碼和清晰架構圖的前提下,理解“這個路由的輸出是那個中間件的輸入”。
這就是為什么,20% 的請求量,本質上是我在“用錢和時間,強行給 AI 灌輸架構知識”,而它還在不斷“遺忘”。
四、結論:Vibe 的歸 Vibe,架構的歸架構
Vibe Coding 不是銀彈,它更像是一個“史上最強的初級程序員”(一個記憶力極差,但知識庫極其龐大,且打字飛快的初級程序員)。
?對于“全民創新”:它是恩賜。它讓 1 到 100 變得簡單。
?對于“系統工程”:它是陷阱。它讓 0 到 1 變得(看似)簡單,但它會把 1 到 100 的“架構債”以“死循環”的方式提前預支給你。
給資深研發的(吐槽式)建議:
1.Vibe 出“零件”,手搓“系統”:讓 AI 幫你寫??bcrypt?? 封裝、寫 JWT 工具函數、寫數據庫 schema。但千萬別讓它幫你“組裝”——那個連接所有零件的“認證中間件”和“全局狀態管理”,請你自己寫。
2.AI 是“副駕駛”,不是“自動駕駛”:你才是那個腦子里有“全局架構圖”的機長。你可以問副駕駛(AI):“幫我查一下??HttpOnly?? cookie 的最佳實踐”,但你不能問他:“你來開,我要去客艙喝一杯。”
3.珍惜你的請求量,它們比不上一個(雖然慢但)記得自己5分鐘前干了啥的初級程序員。
本文轉載自??芝士AI吃魚??,作者:芝士AI吃魚

















