KeyFrame內部研究專用

Dave Farley - Vibe Coding - Is this really the best we can do? - AI Native DevCon June 2026

Tessl AI·7月25日週六·32 min英文

三句話摘要

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 只會顯示它真正能驗證的內容。

更多「AI 技術」的內容

Between Two Nerds: Attribution is dead, long live attribution
32 min
AI 技術英文PODCAST8月25日

Between Two Nerds: Attribution is dead, long live attribution

Risky Business

  • 工具成本的破壞性下降 — 傳統上,攻擊者必須重複使用昂貴自製的惡意軟體或工具組,因為開發和維護成本極高。這種成本結構使得安全研究人員可以通過工具特徵和程式碼簽名來追蹤攻擊者。LLM 自動化了代碼生成與維護工作流,使得攻擊者可以輕易為每個目標生成新工具,或改用通用系統工具,導致傳統的工具特徵分析失效。
  • 所有取證證據都在攻擊者掌控之中 — 無論是使用的 IP 位址、惡意軟體類型或戰術流程,這些都是攻擊者的主動選擇。即使看似是隨機巧合,攻擊者仍有能力在事前決定留下什麼痕跡。因此,所有可恢復的取證證據本質上都是攻擊者願意暴露的信息。
  • LLM 削弱工具簽名但保留高階行為特徵 — LLM 經過公開駭客技術訓練,使不同使用者產生相似的攻擊模式。然而,勒索軟體集團、國家級行為者的受害者選擇、贖金要求方式或目標模式等高階特徵仍具有識別價值。例如,鎖定加密交易所的攻擊幾乎只能指向朝鮮。
Everything Goldman Sachs Taught Me About AI (In 10 minutes)
AI 技術英文8月24日

Everything Goldman Sachs Taught Me About AI (In 10 minutes)

Nate Herk

  • 驗證優於相信:看起來完整的AI輸出不等於正確答案,需在提示中要求模型重新檢查數字、引用來源,並對無把握的部分標記。
  • 區分AI與自動化:確定步驟且答案已知的任務用傳統自動化更便宜快速;只在需要判斷力、靈活性或處理複雜資訊時才用AI,兩者結合效果最佳。
  • 以問題驅動選型:先寫清楚「要解決的問題是什麼、成功的樣子是什麼」,再決定用什麼工具,許多失敗項目是從技術而非問題出發。
Mu: a self-hosted personal agent where the interface is an email address you can write to
AI 技術英文8月23日

Mu: a self-hosted personal agent where the interface is an email address you can write to

GitHub Awesome

  • Mu 是自主代理人系統,具有實際網址與獨立伺服器,用戶可透過多種方式與其互動——網頁應用、電子郵件或程式化介面。
  • 架構完整覆蓋日常工作流程的多個層面,整合郵件收發(SMTP/IMAP)、檔案管理、行事曆、新聞聚合、市場數據與搜尋功能於一個 Go 伺服器內。
  • 支援自帶模型與多種通訊協定,用戶可選擇不同的 AI 模型,並透過 MCP、HTTP API 或命令列工具整合到其他系統。