AI 正在快速取代大量實作細節。
Controller、CRUD、資料轉換、Framework wiring,這些程式碼仍然重要,但越來越適合交給 AI 完成。工程師真正稀缺的能力,開始往更高層移動:
因此,我現在會把注意力集中在兩個地方。
Functional Core 不碰資料庫、HTTP、Session 或外部服務。
它只負責:
Input → State → State → Output
因此,好的測試本身就是可執行規格。
透過 tests,我可以直接理解:
比起閱讀大量實作,我更在意型別、狀態轉換與測試案例。
FP tests 只能證明核心邏輯正確,不能保證整個應用程式接線正確。
Controller 可能傳錯欄位,Mapper 可能漏資料,Transaction 可能沒有正確完成。
所以我會直接操作系統,再檢查:
orders
order_items
order_adjustments
payments
資料庫是系統最後留下的事實。
只要輸入正確、核心規則正確,而且最終資料也正確,中間大量可替換的實作細節就不必逐行閱讀。
我的做法可以概括為:
Functional Core
→ 讀型別、規則與 tests
Imperative Shell
→ 實際操作、檢查 DB 與 side effects
核心必須能被理解,外殼必須能被驗證。
AI 負責展開中間的實作,人類負責定義語意、約束與結果。
我讀測試,確認系統想做什麼。
我看資料庫,確認系統真的做了什麼。
這不是放棄閱讀程式碼,而是把有限的注意力,集中在語意入口與事實出口。