AI Engineer Europe 2026 · 演講 · 2026-04-23 · 18 分
AI 時代,軟體基本功更值錢
Software Fundamentals Matter More Than Ever · Matt Pocock
Matt Pocock 試過「只改 spec、不看程式碼」的做法,結果越跑越爛,於是回頭翻老書,整理出幾個讓 AI 寫出好程式的實作習慣。
概要
- specs to code 行不通Matt 親自試過只改 spec、反覆重跑,每跑一次程式碼就更差,認為這是換個名字的 vibe coding。
- 程式碼不便宜Matt 反駁「code is cheap」,說爛程式碼現在反而最貴,因為難改的 codebase 讓你拿不到 AI 能給的好處;AI 在好的 codebase 裡表現很好。
- 先對齊,再動手Matt 寫了一個叫 grill me 的 skill,讓 AI 不斷追問,直到雙方對要做的東西有共識;個人覺得比 Claude Code 預設的 plan mode 好,因為 plan mode 太急著產出計畫開工。
- 建立共同語言用 DDD 的 ubiquitous language,把 codebase 裡的術語整理成 markdown 表格,Matt 發現這讓 AI 的思考沒那麼囉嗦,實作也更貼近需求。
- 小步前進、靠回饋靜態型別、瀏覽器存取、自動化測試都要有,再用 TDD 逼 AI 一次只走一小步,因為回饋的速度就是速度上限。
- 深模組讓人和 AI 都輕鬆少數幾個介面簡單的 deep module 比一堆 shallow module 好測、好探索;介面自己設計,實作可以放手給 AI。
原話
▶ 03:50“I think code is not cheap. In fact, bad code is the most expensive it's ever been.”
我認為程式碼並不便宜,事實上爛程式碼現在是史上最貴的
▶ 05:28“It's not an asset, it's not something you can put in a markdown file, it is the invisible sort of theory of what you're building.”
它不是資產,不是能放進 markdown 檔的東西,而是你要做的東西背後那份看不見的理論;這裡講的是 Brooks 的 design concept
▶ 11:00“The rate of feedback is your speed limit, which means you should be testing as you go”
回饋的速度就是你的速度上限,所以要邊做邊測
▶ 16:50“invest in the design of the system every day”
每天都要投資系統的設計
延伸
- Matt 提到自己還在摸索 DDD,但說讀到的內容都很對自己的胃口,沒有進一步展開。
- Matt 說有一個重整 codebase 架構的 skill,步驟可以重複使用,但這場沒有細講步驟。
章節
點時碼直接跳到原片的那一段。
- 開場訊息Matt 想對擔心技能不再值錢的人說:軟體基本功仍然重要。
- specs to code 的實驗Matt 在準備 AI 寫程式的課程時試了 specs to code,重跑編譯器只換來越來越差的程式碼。
- 回頭翻老書Matt 拿 A Philosophy of Software Design 與 The Pragmatic Programmer 的複雜度與熵來解釋壞掉的 codebase。
- code is cheap 的反駁Matt 認為爛程式碼是史上最貴,好的 codebase 才吃得到 AI 的好處,這就是整場的主張。
- AI 做的不是我要的用 Brooks 的 design concept 解釋人與 AI 沒有共識,並介紹 grill me 這個 skill。
- AI 太囉嗦溝通用語不一致,所以 Matt 借 DDD 的 ubiquitous language,做了掃描 codebase 產生術語表的 skill。
- 做出來卻不能動型別、瀏覽器存取、測試是基本,但 AI 用不好回饋,常一次寫太多才回頭檢查。
- TDD 逼 AI 小步走引用 outrunning your headlights 的說法,回饋速度就是速度上限,所以要先寫測試再重構。
- deep modules比較 deep 與 shallow module,後者讓 AI 很難探索 codebase,並介紹重整架構的 skill。
- 腦袋跟不上 AI產出變快但人更累;把 deep module 當灰盒,只設計介面並從外部驗證。
- 把模組寫進規劃PRD 裡要寫清楚模組與介面的改動,每天都要投資系統設計。
- 結論:你在策略層AI 是第一線動手的人,上面需要有人想策略,那個人就是你。
名詞
- specs to code
- 寫規格讓 AI 轉成程式碼,有問題就改規格重跑,不看程式碼的做法;Matt 認為行不通
- grill me
- Matt 寫的 skill,要 AI 不斷追問計畫的每個面向,直到雙方有共識;據本人說 repo 有大約 13,000 顆星
- design concept
- Frederick P. Brooks 在 The Design of Design 提出的概念,指多人一起設計時漂浮在彼此之間的那個想法
- ubiquitous language
- DDD 的概念,開發者、程式碼與領域專家共用同一套術語;Matt 用 markdown 表格維護
- outrunning your headlights
- 出自 The Pragmatic Programmer,指開得太快、回饋跟不上
- deep module
- John Ousterhout 的概念:功能多、介面簡單的模組,相對於 shallow module
- John Ousterhout
- A Philosophy of Software Design 的作者,Matt 用這位作者的複雜度定義與 deep module 說明 codebase 設計








