# Uncle Bob Martin 採取拒讀 AI 程式碼策略

> 📖 本站完整內容索引（documentation index）：[llms.txt](/llms.txt)

> 原作者：Uncle Bob Martin (@unclebobmartin) · 策展與摘要：EasyVibeCoding · 平台：X (Twitter) · 熱度：🔥🔥🔥 · 日期：2026-07-24

> 原始來源：https://x.com/unclebobmartin/status/2080257779395154409

## 中文摘要

Uncle Bob Martin 採取拒讀 AI 程式碼策略。資深軟體工程師 Robert C. Martin（Uncle Bob）近日分享了他用 Agent 開發程式的獨特哲學，引發社群熱議。

**不讀程式碼的開發策略**
Robert C. Martin 表示，他現在採用「完全不閱讀 Agent 所寫程式碼」的策略，因為這是唯一能充分享受 Agent 生產力紅利的方式。
- 為了對 Agent 產出的成果保有高度信心，他會用嚴格的約束條件將 Agent 層層包圍。
- 這些約束條件包含單元測試、Gherkin 測試、QA 流程、品質指標、突變測試（mutation testing）以及測試覆蓋率等。
- 正因為程式碼得跑完他所有約束與測試的重重考驗，他最後對產出的成果有極高的信心。
- 至於「這些約束又是誰來寫的？」，他的答案是讓 Agent 自己寫出檢查約束的工具，而那些工具是確定性的。

**程式碼品質與架構約束**
針對社群質疑「既然透過測試確保產品品質，程式碼本身的品質是否還重要？」，Robert C. Martin 明確反對這種說法。
- 他認為程式碼品質還是很重要，因為混亂的程式碼會拖慢 Agent 的執行速度，甚至讓 Agent 陷入自身的混亂中無法解決，最終仍需人工介入收拾殘局。
- 為了讓 Agent 保持順暢運作，他對函式大小、循環複雜度（cyclomatic complexity）和測試覆蓋率設定了很嚴格的限制。
- 他同時開源了用來協調多個 AI Agent 的工具 [`swarm-forge`](https://github.com/unclebob/swarm-forge)，這是一套基於 tmux 的輕量化平台，能透過專案本地的 `swarmforge/swarmforge.conf` 設定、角色 prompt 與分層憲章來組織工作樹（worktree），讓多個 Agent 協作開發而不會互相干擾。

**社群的反思與討論**
這項「不讀程式碼」的激進作法在社群中掀起正反兩極的討論。
- 最初提出疑慮的 Ori Pomerantz 指出，如果必須為程式碼負起責任，從心理層面上會「需要」去理解它，否則會感到不安；不過他隔日補充，自己現在已有足夠信心不去讀 Claude 寫的程式碼，但仍會手動測試，並要求 Claude 補上自動化測試。
- 另一位開發者 Prahlad Yeri 則認為這落入了「中文房間」的思維陷阱，若所有程式碼都由大型語言模型生成，人類只靠約束條件測試，是否還能算是真正的工程師。
- Ben Dickson 則提醒，Uncle Bob 是靠數十年經驗換來的直覺在設計這些約束；對新手來說，只要專案超出原型或玩票性質，先學會讀寫程式碼仍應該是使用 AI 工具的前提。
- 對此，Robert C. Martin 強調：「我是工程師，因為我是負責任的那個人（I am the engineer because I am accountable）。」被問到敢不敢把這套作法用在航空、醫療設備這類攸關生死的程式碼上時，他的回答是「會」——只是應用越關鍵，就越需要投入心力驗證；某些情況下可能得做獨立的逐行逐字檢查，而這與程式碼是人類還是 AI 寫的無關。

## 標籤

Agent, 開源專案, Robert C. Martin
