【從高見龍的演講聊 SDD:讓 AI 寫的程式碼也能被信任】
今天聽了高見龍的演講「Vibe Coding 補完計畫:SDD 規格驅動開發」,他丟出一個很有趣的問題——如果你知道高鐵的訂票網站是用 Vibe Coding 做出來的,那你會搭嗎?
---
▋Vibe Coding 之所以讓人有疑慮
Vibe Coding 的概念是跟 AI 聊天、描述需求,進而來生成出成果。
做個小工具、跑個概念驗證,這個流程確實很有效率。但當專案開始變複雜,一些隱憂就會浮現。
AI 產出的程式碼風格除了每次都不一樣外,它也不會主動告訴你漏掉了哪些邊界條件。
更麻煩的是,AI 很擅長說「我做完了,沒問題」,但實際上可能測試沒過、邏輯有衝突等。
畢竟 LLM 的本質是根據機率產生內容,若指令不夠清楚,它就容易產出預期外的結果。
---
▋SDD 讓「驗證」變成流程的一部分
SDD(Spec-Driven Development,規格驅動開發)的做法是:在寫程式之前,先把規格定清楚,讓規格成為人跟 AI 之間的共同語言。
具體來說,SDD 把開發拆解為三個層次:首先是定義規格,清楚界定要解決的問題與功能範圍;接著產出技術規範,在動手寫程式前先規劃好架構並排除潛在衝突。
最後是任務拆解,將整體工作切分為一個個可執行的小任務,並為每個任務訂定明確的驗收標準。
這樣一來,當 AI 說「完成了」,你手邊就有一份清單可以逐項做確認。
---
▋有驗證流程,才有信任基礎
對於小專案或快速驗證想法,透過 Vibe Coding 來獲得即時回饋,這點還是很有價值。
但如果在做的專案需要長期維護、需要多人協作,那「先寫規格再寫程式」這個習慣,能讓你跟 AI 的協作品質提升不少。
回到高見龍提到的高鐵問題——我們之所以願意搭乘,是因為相信背後有驗證機制在把關。
程式碼是誰寫的或許沒那麼重要,重要的是它有沒有經過檢驗。
SDD 做的事情也是一樣,讓 AI 的產出有規格可循、有標準可驗,它就能成為一個更可靠的協作夥伴:)