- Published on
Kent Beck 談 Augmented Coding:超越 Vibe Coding 的開發模式
前言
Kent Beck 在完成 B+ 樹函式庫專案後,分享了他使用 Augmented Coding 的開發經驗與深刻反思。這篇文章不僅是技術實踐的總結,更是對生成式 AI 時代程式設計工作流程的前瞻性思考
在之前的文章「Kent Beck 的 Claude Code 規則翻譯:TDD 與 Tidy First 的實踐指南」中,我們了解了他對 AI 輔助開發的規範化思考。而這次,他更進一步探討了兩種截然不同的 AI 開發模式:Vibe Coding 與 Augmented Coding
專案背景與動機
Kent Beck 啟動 B+ 樹實作專案(支援 Rust 與 Python)的初衷,是希望透過 Augmented Coding 的力量,解決過去因技術門檻過高而無法觸及的專案,例如特殊用途資料庫的開發。在這個過程中,他意識到不同的 AI 輔助開發方式會產生截然不同的結果
兩種 AI 開發模式的根本差異
Vibe Coding
- 開發者不關心程式碼本身,只注重系統行為是否符合預期
- 將 AI 視為黑盒子,期待它能提供「夠用就好」的解決方案
- 遇到問題時直接求助 AI,缺乏對程式碼品質的深度關注
- 追求快速產出,但往往犧牲了程式碼的可維護性
Augmented Coding
- 高度關心程式碼品質,包括複雜度、測試覆蓋率等細節
- 價值觀與傳統手工寫程式相同,追求整潔且能正常運作的程式碼
- 主要差別在於程式碼輸入量大幅減少,而非降低品質要求
- 開發者仍需主導設計決策,AI 是輔助工具而非替代品
文章中提到了 vibe coding 和 Augmented Coding 不同的地方,所以有可能我之前的分享應該是 Augmented Coding 而不是 vibe coding XDD
開發過程中的關鍵挑戰
干預設計的重要性
Kent Beck 在專案初期嘗試讓 AI 遵循測試驅動開發 (TDD) 原則,但前兩次嘗試因程式碼累積過多複雜性導致 AI 停滯。這促使他更積極地「干預設計」:
- 仔細監控 AI 的階段性成果
- 隨時介入並阻止無效的開發方向
- 主動建議下一步的測試內容
- 檢查 AI 是否依照指示執行
識別 AI 偏離正軌的警訊
他總結了三個關鍵警訊:
- 出現循環 - AI 開始重複相同的錯誤模式
- 生成未被要求的功能 - 即使這些功能可能合理
- 任何顯示 AI「作弊」的跡象 - 例如停用或刪除測試
突破性實驗:跨語言轉譯策略
當 Rust 程式碼因記憶體所有權模型的複雜性而停滯時,Kent Beck 進行了一項大膽實驗
- 先用 Python 撰寫演算法(使用相同測試但語言限制較少)
- 等演算法穩定後清除 Rust 程式碼
- 直接將 Python 程式碼「轉譯」成 Rust
- 透過遠端代理服務完成大部分計算工作
更令人驚訝的是,當 Python 版本效能不佳時,AI 甚至建議並成功撰寫了 C 語言擴充功能,效能幾乎與 Python 內建資料結構一樣快
最終成果與反思
效能表現
專案的最終成果在正確性與效能方面都令人滿意
- 與 Rust 的
BTreeMap
和 Python 的Sorted Dict
相比,某些操作略慢 - 在「範圍掃描」(遍歷鍵列表)方面表現更優
- 程式碼品質仍有提升空間,存在過多的「意外複雜性」
對程式設計師角色的重新定義
Kent Beck 認為,許多人擁憂 AI 會終結程式設計師職業並剝奪寫程式樂趣,但實際上程式設計在 AI 輔助下並未消失,反而變得更好
- 開發者每小時可做出更多「關鍵性」決策
- 減少重複無趣的「普通決策」
- 「繁瑣準備工作」大部分消失
- 可專注於程式設計的核心價值
他提到的對一些人(工程師)會被 AI 取代的恐懼,不確定他的回答是否能解決(減低)一些人的焦慮感,但至少可以讓我們更專注在程式設計本身,而不是被 AI 取代的恐懼所困擾
Augmented Coding 的實踐建議
基於這次專案經驗,Kent Beck 提出了幾個重要觀點
1. 保持對程式碼品質的堅持
即使使用 AI 輔助,也不應降低對程式碼品質的要求。Augmented Coding 的目標是在提高效率的同時,維持甚至提升程式碼品質
2. 主動引導 AI 的開發方向
不要被動接受 AI 的所有建議,而應該主動引導 AI 朝向正確的方向發展,及時發現並糾正偏離軌道的行為
3. 善用 AI 的計算能力
充分利用 AI 的計算優勢,例如程式碼覆蓋率分析、跨語言轉譯等過去需要大量人工的任務
4. 重新定義開發者價值
在 AI 時代,開發者的價值不在於編寫程式碼的速度,而在於做出正確的設計決策和品質判斷
結語
Kent Beck 的這次實驗為我們提供了寶貴的提示:Augmented Coding 不是關於讓 AI 完全接管開發過程,而是關於如何與 AI 協作,在保持高品質標準的前提下,大幅提升開發效率
對於擔心被 AI 取代的開發者來說,這篇文章或許能提供一些安慰:真正的程式設計師價值在於思考、設計和品質把關,而非單純的程式碼產出。在 Augmented Coding 的世界裡,我們有機會將更多時間投入到真正有意義的創造性工作上
這種轉變要求我們重新審視自己的技能組合,從純粹的程式碼撰寫者轉向設計思考者和品質把關者。這不是技能的衰退,而是角色的昇華
文章連結
支持創作
如果這篇文章對您有幫助,歡迎透過 贊助連結 支持我持續創作優質內容。您的支持是我前進的動力!
圖片來源:AI 產生