Dave Farley - Vibe Coding - Is this really the best we can do? - AI Native DevCon June 2026
三句話摘要
Dave Farley 论证 AI 编程虽然加速了代码生成,但必须保留传统软件工程的核心实践——精确规格化、增量验证与持续交付——才能应对复杂系统开发。 精確指定需求、自動化驗證結果、維持增量開發是應對 AI 編程時代的核心原則——這些都不是新概念,而是傳統軟體工程紀律在 AI 時代的延續。 測試是衡量工具,不是驗證工具。測試的真正作用是像木匠的捲尺一樣,測量我們是否達到目標。AI 生成的測試只能驗證現有代碼的行為,無法定義原始目標,所以自動化生成測試多數情況下是錯誤的做法——它只會強化既有的錯誤。
重點整理
重點- 1
測試是衡量工具,不是驗證工具。測試的真正作用是像木匠的捲尺一樣,測量我們是否達到目標。AI 生成的測試只能驗證現有代碼的行為,無法定義原始目標,所以自動化生成測試多數情況下是錯誤的做法——它只會強化既有的錯誤。
- 2
自然語言編程不夠精確。相比編程語言具有簡潔、精確、可重複的特性,自然語言存在歧義性,難以重複執行。需要用精確化、結構化的自然語言(如 BDD 風格規格)而不是純粹的 Vibe Coding 來彌補精度不足的問題。
- 3
AI 改變了開發瓶頸位置。編碼往往不是傳統軟體開發的瓶頸,真正的瓶頸在於驗證和理解需求。AI 加快編碼後,必須建立與之相匹配的驗證機制,否則會形成新的流程瓶頸。
- 4
增量開發的重要性保持不變。軟體開發本質是增量學習與發現的過程,AI 應協助編碼層面,但整個工程流程仍需按小步驟進行,每一步都要驗證,才能應對複雜系統。
實用技巧與重點
乾貨- 軟體編程的三個目標:幫助組織思考問題、在人類之間溝通理解、指示電腦執行任務
- 編程語言三項關鍵特性:簡潔一致的文法、無歧義的意圖表達、可重複確定的執行
- 自然語言的三個缺陷:複雜不一致、歧義模糊、不可重複不可版本控制
- AI 編程三大核心問題:(1)如何精確指定需求(2)如何確認得到正確結果(3)如何保持增量開發能力
- BDD 風格規格(Behavior-Driven Development Specifications)
- 可執行規格:既指定需求又驗證結果
- 領域特定語言(Domain-Specific Language, DSL)
- 部署管道(Deployment Pipeline)用於獨立驗證
- 用戶故事 → 例子 → 可執行規格的演進過程
- 參考開源專案:NWave
- 類比:從汇编語言到高級語言的演進,未來從代碼生成到行為驗證的演進
結論
結論“精確指定需求、自動化驗證結果、維持增量開發是應對 AI 編程時代的核心原則——這些都不是新概念,而是傳統軟體工程紀律在 AI 時代的延續。”
完整解析
詳細Dave Farley 的核心論點是:AI 對軟體開發造成革命性影響,但許多關於 AI 編程的樂觀預測實際上是危險的誤解。他先從測試的本質出發。測試不是為了證明成功或找出錯誤,而是一種測量工具——用來確認我們是否實現了既定目標。當 AI 看著現有程式碼自動生成測試時,它只能驗證該代碼確實做了現在做的事,無法定義原本應該做什麼。這就像一個計稅函式錯誤地返回金額的 50 倍,AI 生成的測試只會強化這個錯誤,而不是糾正它。這說明自動化測試在某些特定場景有用,但不能替代需求規格化。
其次,自然語言編程(Vibe Coding)看似直觀,卻在根本上不夠精確。編程語言之所以存在,是因為它們提供了三項關鍵特性:簡潔一致的文法讓我們精確表達意圖、無歧義的表達方式、可重複確定的執行結果。自然語言恰恰相反——它既模糊又容易被誤解,每次執行同一句話給 AI,可能得到不同結果。僅用自然語言提示是遠遠不夠的,需要用結構化、精確化的方式來提示,例如 BDD 風格的可執行規格。
Farley 指出 AI 編程帶來的根本問題有三個:(1)如何用精確的方式指定我們想要什麼;(2)如何確認我們真的得到了想要的東西;(3)人類與機器的工作方式差異——人類增量學習,但 AI 傾向一次性重寫整個系統。這導致一個嚴重後果:失去了增量開發的能力,而增量開發正是構建複雜系統的基礎。
他舉例說,某個採用 AI agent 進行編程的開發者每天生成 12,000 行代碼,但沒有人類能夠每天審查或手動測試 12,000 行代碼。這表明傳統的人工驗證已經無法跟上代碼生成的速度,必須自動化驗證方式來彌補差距。
Farley 提出的解決方案是採用 BDD 風格的可執行規格。在這個模式中,開發者從模糊的需求出發,逐步形成用戶故事和具體例子,這些例子成為可執行規格。AI 根據這些規格生成代碼,開發者通過測試來驗證 AI 是否滿足要求,並用 AI 沒見過的測試值來檢驗,防止 AI 作弊。這樣既精確指定了需求,又內建了驗證機制,同時保持了增量開發的節奏——每個新需求、每個小變更都經歷同樣的流程,讓系統逐步演進。
這與持續交付的實踐完全一致。如果已經在實踐持續交付,那麼只是把編碼工作交給 AI,驗證和學習的流程保持不變。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


