The Samo Log

別再 Vibe Coding 了,你只會 Code 出一堆垃圾

什麼是 Vibe Coding?

在 AI 寫程式 (AI Coding) 的圈子裡,最近很流行一個詞叫 “Vibe Coding”

意思大概是:你不需要懂太多語法,不需要懂底層原理,只要跟 AI「頻率對了」(Vibe check),用自然語言隨便聊幾句,AI 就能幫你把功能生出來。

上週,我為了驗證一個 Side Project 的點子(一個 RPG 化的番茄鐘 App),我也進入了這種 「上帝模式」

  • 「幫我做一個倒數計時器。」👉 好了。
  • 「倒數完要跳出煙火動畫。」👉 好了。
  • 「幫我把經驗值存到 LocalStorage。」👉 好了。

那種多巴胺分泌是真實的。以前要寫兩天的功能,我兩小時就做完了。我看著手機上可以跑的 App,心想:「太神了,我一個人就是一支軍隊。」

夢醒時分:屎山崩塌的那一刻

然而,蜜月期只維持了三天。

當我要加入「雲端同步」功能,並重構資料結構時,災難發生了。我打開 App.tsx,發現裡面塞了 800 行程式碼。

  • 變數命名混亂:userXP,也有 experience,還有 exp_val,全看 AI 當下的心情。
  • 邏輯互相打架: 計時器的 useEffect 裡包了三個 if-else,是用來修補上次動畫不消失的 Bug,結果導致現在倒數無法暫停。
  • 改 A 壞 B: 我叫 AI「幫我優化介面」,結果它把我的資料儲存邏輯刪掉了。

雖然 App 「看起來」 能動,但打開程式碼一看,裡面全是 // Fix later 和各種莫名其妙的 try-catch。這不是軟體工程,這是數位違章建築

這就是 Vibe Coding 的代價:你借來了速度,但償還的是指數級暴增的技術債。

為什麼 AI 會寫出垃圾?

作為一個平常需處理 日流量 4TB 級別的 SRE(維運工程師),我冷靜下來分析,發現問題不在 AI,而在於**「缺乏約束」**。

AI 就像一個剛畢業的天才實習生,手速極快,但沒有大局觀。 如果你不給它藍圖(架構),只給它指令(功能),它就會用最直觀、最暴力的方式解決眼前的問題。

  1. Context Window 的陷阱: AI 記不住你三天前寫的邏輯,它只看得到當前的檔案。所以它會寫出重複或衝突的代碼。
  2. 缺乏「單一真理」(Single Source of Truth): Vibe Coding 沒有規格書,你的 Prompt 就是規格。但你的 Prompt 變來變去,程式碼也就跟著精神分裂。

從 Vibe Coding 到 Engineering

痛定思痛,我決定把這坨 MVP 丟進垃圾桶,重新來過。

這次,我不求快,我求。我引入了我在維運高流量系統時的思維:

  1. Spec First (規格先行): 在寫 Code 之前,先寫 Markdown 文件定義資料結構。這是我跟 AI 的「合約」。
  2. TDD (測試驅動開發): 我不叫 AI 直接寫功能,我叫它**「先寫測試」**。如果它能寫出通過測試的代碼,那邏輯就不會爛到哪去。
  3. Monorepo 與 模組化: 強制 AI 把 UI、邏輯、資料層分開。如果不分開,我就拒絕接受它的 Code。

結論

AI 確實能讓我們變成 10x 工程師,但前提是你的 「基礎物理知識」 要夠紮實。

如果你不懂系統設計、不懂資料流、不懂解耦,那 AI 只會是一個讓你 「以 10 倍速度製造垃圾」 的放大器。

別再 Vibe Coding 了。慢下來,寫好 Spec,做好設計。 你是架構師,AI 只是你的手。不要讓手去決定腦袋該做的事。

寫作日曆

Mon Wed Fri
Less
More

也看看我的其他文章

載入留言中...