Matt Pocock 訪談 Uncle Bob(Robert C. Martin)。Bob 寫程式超過半世紀,*Clean Code* 在 AI 之前就深度影響業界。這場核心問題是:coding agent 來了之後,軟體基本功還重不重要?哪些該留、哪些該鬆?
早期 Grok 等 agent 能寫碼,但常留雜訊,Bob 得一直收拾。後來他把重心放在約束與驗收:測試覆蓋、mutation testing、CRAP/複雜度門檻等確定性工具當關卡。Agent 夠快、又被關進品質門,就不必全程盯每一行。
重點不是再寫十頁 Clean Code prompt(易「lost in the middle」),而是讓工具強制改到過關。
Agent 快也相對聰明,但一樣怕混亂——人與模型的崩潰門檻不同。碼亂到某程度,會改 A 破 B、原地空轉,甚至放棄。解法:清結構/分模組,再用確定性 gauntlet 當回饋迴路。
| 角色 | 大致職責 |
|---|---|
| Implementer | 先把功能做出來(常很髒) |
| Cleaner/Reviewer | 靜態分析、review、清 mess |
| Hardener | mutation testing 等,把品質硬化 |
有通訊成本,但仍常比人快。Matt 補:同一次 session 的 trajectory 很重要——前面怎麼做,後面會延續那條軌道;單一任務聚焦的 agent 比較不易被雜訊帶歪。
乾淨分區與清楚介面,人好抓,agent 也不易在「什麼都塞」的模組裡迷路。談到 Ousterhout 的 deep modules(窄介面、深實作):模型會看介面名稱與結構,也會讀測試理解行為——結構愈清楚愈好用(不讀實作既是優點也是風險)。
對 agent,Bob 會放寬函式大小/CRAP 門檻(人約 4,agent 試 6、甚至往 8),因為模型短期記憶更大、更準。
即便要求高紀律 TDD,agent 也常退回「寫一段函式再寫測試」——對 agent 這樣較合理。
先規格寫爆再丟 agent,是舊 waterfall 誘惑。Bob 親試:大規劃常災難——計畫沒想全、agent 又不夠慧,只好停、改、重來。他改試 Agile:做一點 → 回饋 → 整理架構 → 再做一點。
變更成本已被壓得很低(「蓋房子每次改只要一美金」)——何必砸大錢做前端完美藍圖?不如 fiddle until it looks right。Agent 超愛華麗計畫,尾段常散掉;spec-driven/plan-maxing 他印象大概行不通。
規格在他手上偏短暫。替代作法:用結果與工具本體當規格——別照抄他的工具,指給你的 agent 看,讓它為你做一套。另一邊不對稱:agent 幾乎會讀你給的;人卻很少讀完 agent 寫的。
Agent 戰術強、戰略弱。AI 吃掉大量戰術後,新人怎麼練戰略?Bob 大致路徑:
辨識 agent「在掙扎」需要經驗;新手看不出,老手認得出。
軟體是人類做過最複雜的事之一;基本功是把複雜度整理成可被理解的形狀——不只給人,也給仿人的模型。覺得不重要的人會用痛學會;agent 很強,但牆還在。
抽象層一路上移(二進位 → 組語 → 編譯器 → model):每一層底下的人都喊工作沒了——規則沒變;丟掉的規矩通常一年後又會從地板撿起來拍灰。
※ 原文:https://www.youtube.com/watch?v=zcLPGC-tvgk
※ 完整英文逐字稿:transcript.txt(faster-whisper base)
※ 對談:Matt Pocock × Robert C. Martin(Uncle Bob)· LIVE
※ 純對話/talking-head:正文僅封面,無重複姿勢影格