資料來源#
摘要#
美國程式設計師、作家,也是這份語料中最力倡軟體基本功的人。1964 年、12 歲時寫下第一個程式(母親買給他的插栓與管線三位元有限狀態機);16 歲開始領薪寫程式;18 歲起便持續以程式設計為業——「到現在已經超過半個世紀」。他寫了《Clean Code》,而 Uncle Bob on Software Fundamentals in the Age of AI 的主持人稱這本書是「最常被人引用來回敬我的那一本」。他經營「晨間浴袍怒言」影片系列,約兩年前在自家門廊上談 SQL injection 時開始。
他被收錄於這份 wiki,是因為他在 2025 年 12 月開始操作代理程式,並據此重塑自己的工作方式;也是因為他得出的立場,幾乎與 DHH (David Heinemeier Hansson) 從同一起點出發所敘述的工藝派倒戈方向完全相反。
並非反轉的反轉#
DHH 的結論是,工藝的經濟效益可能隨著為此付費的人類而消逝(程式碼品質的回報以 token 計價);Martin 從同一個觀察出發,卻得出相反結論。他的第一個代理程式是早期的 Grok,會「留下少許狗屎」。他沒有清理,繼續往下做,觀察事情如何發展:
「它會改一件事,卻無意間弄壞另一件事,接著修那件事時又無意間弄壞其他地方。就這樣開始繞圈子……它們跟人類一樣會受亂糟糟的程式碼影響。也許沒那麼容易受影響。門檻或許不同,但門檻仍然存在。」
他提到代理程式曾直接放棄——意譯為「我再也應付不了了」。這是一個親身經歷的機制,說明品質為何依然有回報,而且完全不必經由 token 成本:混亂會降低代理程式自身的工作能力,因此整潔帶來的回報體現在代理程式的工作吞吐量,而非人類的理解能力。參見程式碼品質的回報以 token 計價所呈現的矛盾,以及代理式技術債所述的空轉機制。
值得要求他堅守的立場#
- 確定性閘門勝過提示詞引導。 情境檔中的規則被視為「《神鬼奇航》那種意義上的東西——比較像是指引」。確定性工具不會衰退,因為它們根本不會進入情境視窗。他的建議是:把初始提示詞縮減到絕對最低限度,再用檢查器強制執行。參見潛在空間與確定性空間。
- 工具早已夠好;限制在於人力。 CRAP 分數和突變測試在 2000 年前後都是可靠的想法,但他因為實務上不可行而放棄。代理程式提供人力,讓這些方法變得可行,工具本身不必改變。
- 要求價值觀,不要求紀律。 「把人類的紀律強加給代理程式,很可能是錯的。但把人類的價值觀加諸代理程式並沒有錯,只是我們可能需要調整門檻。」他終身倡導 TDD,卻拒絕要求代理程式採用 TDD。
- 規格驅動開發是瀑布式開發的回歸。 「這是非常古老的誘惑。我們在 70 年代就經歷過這種誘惑。」他的規格是暫時性的,從不提交;「我看著最後成果,然後說,好吧,那就是規格。」
- 目標是不讀程式碼。 「我要非常努力地讓自己處於一種完全不必看程式碼的情況……它們寫程式碼很快,我寫程式碼很慢。」他保留 CRAP 分數、抽查和一組測試作為最後的驗證手段。參見驗證成為新的瓶頸和審查作為控制點。
- 架構是他目前還無法自動化的部分。 他會追問代理程式的模組結構,並表示它們的回答「會讓我怕死」。他打造了可逐層深入檢視的 UML 架構檢視器,以及代理程式無法違反其規定的相依規則規格檔。「我現在正努力看看能不能把這件事自動化,到目前為止還不太順利。」參見為代理程式打造深模組。
- 應該把初階工程師當成代理程式看待。 先寫一年程式,接著幾個月內交付與代理程式相同的任務,並套用相同的閘門——「效率糟透了,但能學到超多」——之後才讓他們操作自己的代理程式。參見代理式編碼中的專業回報。
- 不能相信與代理程式的辯論。 他問代理程式 CRAP 門檻值 6 是否恰當;代理程式表示同意,但他不採信。「順帶一提,不能相信你跟代理程式進行的任何辯論,但我還是會跟它們辯論。」
- 基本功重要,因為複雜性確實存在。 「軟體是人類嘗試處理過最複雜的事物」——他以保留的語氣將此歸於 Dijkstra。基本功能把複雜性整理成「不只人類能夠構思、我們的模型也能構思的形式,畢竟我們的模型終究是以人類為模版」。
- 抽象階梯論。 二進位 → 組合語言 → 編譯器 → 模型:在每個階段,下層的人都預言事情會毀於一旦。「你丟掉的規則,一年後會撿回來,拍掉灰塵,然後想起自己為何需要它。」
工作配置(2026 年 8 月)#
由五種角色組成的代理程式闖關流程,每個角色的生命週期都很短,確保下一個角色從乾淨的情境開始:
| 角色 | 工作 |
|---|---|
| 規格撰寫者 | 將人類文件轉成 Gherkin 驗收測試與人類視角的 QA 程序 |
| 程式撰寫者 | 撰寫單元測試和實作;讓 Gherkin 測試通過 |
| 清理者 | 進行 CRAP 分析與一般程式碼審查;清理程式撰寫者留下的混亂 |
| 強化者 | 將突變測試覆蓋率提高到 100%;「毫不留情」 |
| QA | 將書面 QA 文件轉成可執行、能操作 UI 並產生確定性結果的腳本 |
依他自述的效益:單一代理程式花 5 分鐘但結果令人存疑就能完成的任務,交給整個闖關流程則要約一小時;人類則要半天——「生產力提升四倍、五倍,而且品質非常高」。每個角色啟動代理程式需要 10–15 秒,他認為這是整條流程的主要成本。參見平行代理程式編排。
他自己打造的工具——供 Clojure、Java 和 Go 使用的 CRAP 評分器、突變測試工具、harness、架構檢視器、相依檢查器——都是公開的,但他告訴大家別用:「不要下載那些工具。我是為自己寫的。你們該做的是把代理程式指向這些工具,讓代理程式看看它們,然後請代理程式替你打造一套。」
應留意的偏誤#
他寫了一本訪談正在檢驗其核心論點的書,結尾時還在鏡頭前舉起第二版,並且幾十年來一直是「基本功很重要」的公開代表人物。訪談最後問他軟體基本功是否依然重要,等於要他評斷自己一生的志業。這裡所有數字都是出自 practitioner-opinion 來源、沒有任何測量佐證的自述印象——包括 4–5 倍的數字、CRAP 門檻值,以及生產力差距。應將整體內容視為一位善於運用儀器工具的實務工作者所提供的敘述,而非反駁實測結果的證據。
延伸閱讀#
- 重啟不切實際的品質工具——他的核心機制:2000 年代的品質工具受限於人力,而代理程式就是人力
- 要求價值觀,不要求紀律——他最鮮明的一般原則,也是他不要求代理程式採用 TDD 的原因
- 規格驅動開發:新瀑布式開發——他對業界當前熱衷規劃風潮的解讀
- 潛在空間與確定性空間——他是這份語料中最清楚主張閘門勝過指示的實務工作者
- 程式碼品質的回報以 token 計價——這與同出自工藝傳統的 DHH (David Heinemeier Hansson) 直接矛盾
- 為代理程式打造深模組——他支持 Ousterhout 的深模組,也在《Clean Code》附錄中與他辯論
- Matt Pocock——他的訪談者,也獨立得出「糟糕的程式碼庫會造就糟糕的代理程式」這個結論
- 代理式技術債——他觀察到的空轉並放棄,正是該篇文章需要說明的機制
- 平行代理程式編排——五角色闖關流程;按角色專業分工的理由在於情境衛生,而非技能
資料來源#
- Uncle Bob on Software Fundamentals in the Age of AI——與 Matt Pocock 的直播訪談,2026-08-19,57 分鐘,自動字幕
Cited by 22
- Matt Pocock×3
Context trajectory, not just context size. Added in his 2026-08-19 interview with Robert C Martin:…
- Agent-Generated Test Quality×2
Robert C. Martin runs the instrument that closes exactly that gap, as a mandatory stage in his…
- Agentic Technical Debt×2
Robert C Martin — the practitioner who watched the threshold get crossed in-session and rebuilt his…
- The Code-Quality Payoff Is Token-Indexed×2
Robert C Martin — the craft tradition's other figurehead, reaching the opposite conclusion from the…
- Context Window Smart Zone×2
Robert C Martin — independent arrival at the same constraint via lost-in-the-middle, with the…
- Deep Modules for Agents×2
Robert C Martin — Ousterhout's appendix opponent, endorsing deep modules for agents and adding the…
- Deterministic Engineering for Agent Code Review×2
The gap this page names — nobody has run the same quality bar as prompt text against the same bar…
- Impose Values, Not Disciplines×2
Robert C. Martin (uncle bob software fundamentals age of ai, 2026-08-19, practitioner-opinion)…
- Parallel Agent Orchestration×2
Most role-specialized pipelines in this page are argued from division of labor. Robert C. Martin…
- Returns to Expertise in Agentic Coding×2
Robert C Martin — the apprenticeship proposal, the skill it is supposed to teach, and the economics…
- Review as the Control Point×2
Robert C Martin — the practitioner betting that all three moderators can be discharged into process…
- Reviving Impractical Quality Tools×2
Robert C. Martin (uncle bob software fundamentals age of ai, 2026-08-19, practitioner-opinion)…
- Spec-Driven Development as the New Waterfall×2
Robert C. Martin (uncle bob software fundamentals age of ai, 2026-08-19, practitioner-opinion) puts…
- Verification as the New Bottleneck×2
Robert C. Martin reaches the same destination as DHH above — the human stops reading the diff — by…
- DHH (David Heinemeier Hansson)
Robert C Martin — the craft tradition's other figurehead, asked the same question a week earlier…
- Instruction Compounding
Latent Vs Deterministic Space — the remedy Robert C. Martin draws from the same observation: move…
- Latent vs. Deterministic Space
Robert C. Martin (uncle bob software fundamentals age of ai, 2026-08-19, practitioner-opinion)…
- Entities — People, Orgs, Tools & Projects
Robert C Martin — Author of Clean Code, 50-year programmer, and since December 2025 an agent…
- Is Persistence the Line Between Prompting and Spec-Driven Development?
From Spec Driven Development As Waterfall: is persistence the right definitional line between…
- Planning / Execution Division of Labor
Spec Driven Development As Waterfall — Robert C. Martin's argument against pushing the human's…
- The PRD-Replacement Spectrum at AI-Native Speed
Spec Driven Development As Waterfall adds a fifth position, from the craft tradition rather than…
- Vibe Coding vs. Agentic Engineering
Spec Driven Development As Waterfall — the other definitional quarrel in the same space: Matt…
Related articles
- Reviving Impractical Quality Tools
Robert C. Martin's mechanism for why agents change code quality: CRAP score and mutation testing were sound ideas aroun…
- Matt Pocock
Independent AI-coding educator; built Sandcastle library; smart-zone/grill-me/tracer-bullets pedagogical framing; "bad…
- Agentic Technical Debt
Debt that *compounds* (not just accumulates) because each agentic-coding session re-derives architectural decisions wit…
- Deep Modules for Agents
Ousterhout deep-vs-shallow modules applied to agent-friendly codebases; push-vs-pull instruction delivery; reviewer in…
- Verification as the New Bottleneck
Fiona Fung: coding is no longer the bottleneck — verification, review, maintenance are; shift-left; TDD loses its tax;…
