Opens in a new tab

Uncle Bob 推出 ub-mode:讓 AI Coding Agent 遵循軟體工程紀律

AI Coding Agent 遵循軟體工程紀律

這位令人尊敬、幾乎把一輩子都奉獻給軟體業的 73 歲 Bob 大叔(Uncle Bob),到了 AI Agent 時代,依然走在軟體開發的前線!

先前我曾介紹過他對 AI Agent 開發的觀點與策略:Uncle Bob 對 AI Agent 開發的觀點

而在前幾篇文章中,我也談過如何透過 Agent Skill,讓 AI Agent 遵循特定的開發方法與實務規範:關於 Agent Skill 的應用與實踐

最近,Bob 大叔親自發布了一個名為 ub-mode 的 Agent Skill,將軟體工程原則轉換成 AI Coding Agent 可以遵循的開發紀律。

這個 Skill 值得關注的地方,不只是要求 Agent 寫出能正常運作的程式碼,而是進一步規範它應該如何思考、實作、驗證與維護程式碼。

ub-mode 的三個核心階段

ub-mode 的設計核心,主要分為三個階段:

1. First Make it Work:先讓功能正確運作

首先從需求與資料結構開始思考,確認問題與預期結果,再進行實作。

這個階段強調:

  • TDD(測試驅動開發):先建立失敗的測試,再以最小的修改讓測試通過。
  • 最小變更原則:優先採取能解決問題的簡單方案,避免不必要的複雜度。
  • 從根本重新思考設計:面對新需求,不只是直接將功能附加到既有程式碼,而是考慮原有設計是否需要調整。
  • 架構與邊界紀律:重視領域模型、資料驗證、型別約束與操作的冪等性(Idempotency)。

這些原則的目的,是避免 AI Agent 為了快速完成任務,而不斷堆疊程式碼或引入不必要的設計。

2. Then Make it Right:再讓設計與程式碼品質達到要求

當功能可以正常運作後,接下來要關注的是程式碼的設計品質與可維護性。

這個階段強調:

  • 根因修復(Root Cause Fix):找出真正造成問題的原因,而不是只加入額外的防護判斷來掩蓋問題。
  • 行為測試(Behavior Testing):測試應該驗證外部可觀察的行為,而不只是內部實作細節。
  • 小步驗證與重構(Refactoring):逐步改善程式碼結構,並確認既有行為沒有改變。

此外,Bob 大叔還搭配了幾個獨立的程式碼品質檢查工具:

  • Crapper:結合程式複雜度與測試覆蓋率,透過 CRAP 指標評估程式碼風險。
  • Dryer:檢測結構性重複程式碼,協助降低重複實作。
  • Mutator:使用變異測試(Mutation Testing),檢查測試案例是否真正具有發現錯誤的能力。

這些工具讓原本較為抽象的程式碼品質要求,可以進一步透過具體指標與測試結果來驗證。

3. Practice:維持良好的工程實踐

除了功能實作與品質改善之外,ub-mode 也重視 AI Agent 在整個開發過程中的工作紀律。

主要包括:

  • Keep a Log:記錄每次修改的內容與原因,讓開發過程可以追蹤。
  • Guard the Context Window:管理 Agent 的 Context Window,避免主工作脈絡承載過多不必要的資訊。
  • Worktree Cleanup:清理不再使用的工作目錄與資源,同時保護尚未提交的修改。
  • Commit and Push:以小批次、可驗證的 Commit 保存開發成果,並清楚記錄修改原因與驗證方式。

這些實踐不只是要求 Agent 完成程式碼修改,也要求整個開發過程能夠被理解、追蹤與驗證。

如何安裝與使用 ub-mode?

ub-mode 是一個 Agent Skill,可以安裝在支援相應 Skill 機制的 AI Coding Agent 環境中。

使用 Skills CLI 安裝:

npx skills add https://github.com/unclebob/ub-mode --skill ub-mode

安裝後,可以在支援 Skill 指令的 Coding Agent 中調用:

/ub-mode

如此便能要求 Agent 在開發或修改程式碼時,依照 ub-mode 所定義的工程原則執行工作。

另外,如果希望進一步落實程式碼品質檢查,還可以搭配 Crapper、Dryer、Mutator 等工具。

需要注意的是,這些品質檢查工具並不包含在 ub-mode Skill 本身,必須另外安裝與配置。

相關 GitHub 專案:

AI Agent 可以寫程式,但工程紀律仍需要由開發者定義

我覺得 ub-mode 最值得參考的地方,不只是 Clean Code 或 TDD,而是將軟體工程的設計原則與開發紀律,轉換成 AI Agent 可以反覆執行、並透過工具驗證的工作流程。

這也呼應了我之前一直強調的觀點:

AI Agent 可以負責程式實作,但開發方法、架構原則與品質標準,仍然需要由開發者來定義。

當 AI Coding Agent 越來越能夠自主完成開發任務時,開發者需要思考的,已經不只是如何讓 Agent 寫出程式碼,而是如何將適當的工程方法與品質要求,落實到 Agent 的開發工作流程中。

ub-mode 提供了一個值得參考的實踐方向。


專案來源: Uncle Bob — ub-mode (GitHub)

留下第一條留言