在 AI 時代,程式碼審查會變成規格審查
當 AI 能從規格產生實作、測試與 contracts,槓桿最高的人類工作就會往上游移動。最需要被仔細審視的東西,其實是規格本身。
如果你已經用 AI 出貨超過幾個星期,你大概很熟悉這種感覺。 你打開一個 PR。程式碼夠乾淨。命名還不錯。測試也有。看起來沒有任何明顯壞掉的地方。但你就是覺得哪裡怪怪的。 也許邊界有點模糊。也許 contract 只是被暗示,卻沒有被明確寫出來。也許 happy path…
探索 AI 優先開發、編碼護欄和可處置架構。
當 AI 能從規格產生實作、測試與 contracts,槓桿最高的人類工作就會往上游移動。最需要被仔細審視的東西,其實是規格本身。
如果你已經用 AI 出貨超過幾個星期,你大概很熟悉這種感覺。 你打開一個 PR。程式碼夠乾淨。命名還不錯。測試也有。看起來沒有任何明顯壞掉的地方。但你就是覺得哪裡怪怪的。 也許邊界有點模糊。也許 contract 只是被暗示,卻沒有被明確寫出來。也許 happy path…
如果你想讓 AI-generated code 能在正式環境站得住,光靠 code review 不夠。你需要一套從 type constraints 到 mutation testing 與 runtime containment 的分層安全棧。
AI-generated code 最大的危險,不是它總是錯的。 真正危險的是,它經常「看起來已經對得足夠可以 merge」。 這正是風險所在。明顯有問題的 code 往往會被擋住。真正會進正式環境的是那種看起來合理、能過幾個 happy-path tests、卻悄悄削弱關鍵 boundary 的實作。…
這個梗之所以好笑,是因為很多團隊真的活在「隕石開發」裡:不斷變動的目標、固定期限和半成形範圍一起砸下來。Autotomy 不能修復幻想式規劃,但它可以讓開發繼續往前走。
在華文語境裡,它更常被直接叫做「隕石開發」;這個說法本來就帶著日文工程圈裡 Meteo Fall 的梗味。終點先宣布,站點中途再改,預算默認你會自己吞下,而工程團隊必須在列車已經「快要發車」時繼續鋪軌。 這個工作流做成梗會好笑,是因為現實團隊裡它真的一直在發生。…
這篇對 Stanford CS146S 的評論認為,它準確看見了 AI coding 的轉向,但真正決定長期品質的仍是 AI architecture:系統是否可替換、可約束、可持續演進。
Stanford 的課程代碼是 ,課名是 The Modern Software Developer,由 Mihail Eric 授課,是一門在 2025 年秋季首次開設的課程。想看課程的官方概覽和 syllabus 細節,可以直接到官方課程網站…
Design by contract、property-based testing、mutation testing、model checking 從來不是壞想法。真正的問題是它們長期需要太多專業判斷才能維持,而 AI 正在改變這筆帳。
軟體工程裡有很多方法,你一讀就會覺得「這本來就該這樣做」。 當然應該用 contracts 明確 function 能接收什麼、必須回傳什麼。當然 tests 不該只寫幾個人工挑選的例子,而應該驗證 properties。當然團隊不該把 coverage 當成品質代理,而應該真的去判斷 tests 能不能抓到…
AI 可以很快把你的 React Native MVP 推上線,但如果沒有 guardrails,每一個小改動都可能打壞無關的 flow。這裡會說明 declarative constraints 如何避免速度直接變成脆弱性。
Vibe coding 的前半段,效率高得離譜。Cursor 和 Claude Code 可以飛快生成 login、dashboard、settings、push notifications,快到一位單人創辦人幾天內就能把 MVP 推上線。 問題通常出在第二輪或第三輪修改。settings 裡一個小 tweak 會把…
你的 app 在 dev 裡一切正常,但使用者午休後回來卻看到白畫面。這裡是能正確處理原生 lifecycle 的 resume status 模式。
你在 Cursor 裡做出了一個漂亮的 Expo app。Claude Code 生成了 auth flow、dashboard 和 settings screen。你把它發出去了。使用者也下載了。然後 DM 開始出現: "為什麼我午休後再打開 app 就是白畫面?" "為什麼我每天早上都得重新登入?" "為什麼我從…
如果 optional SDK 用 core infrastructure 的方式初始化,它們完全可能在啟動時把 app 一起拖垮。這套 dependency tier system 能避免非關鍵工具把 production 也一起帶下水。
Vibe-coded mobile app 裡一個很常見的 launch failure 是:analytics、attribution、crash reporting 和真正 critical 的 service 被放在同一條初始化路徑上。如果這些 optional SDK 裡有一個在某個 device 或某種…
你用 Cursor 一個週末就交付了 MVP,但現在只改一個 brand color 就會波及 47 個檔案。這套 styling contract 可以止血。
你打開 Cursor,輸入一段 prompt,看著 Claude Code 在幾秒內生成一整套 React Native UI。Flex layout、圓角 button、color theme,全都一次就跑起來。你把它送上 TestFlight。使用者開始下載。這是第一週。 到了第六週,你只是想改一個 brand…
LLM code review 既不確定、又慢,還會漏掉架構違規。這套 O(1) guard stack 才真的能讓你的程式碼保持乾淨。
我認識的一位開發者,把 Claude Code 設成 CI 裡的程式碼 reviewer。「就讓 Claude 幫我看 PR,」他對我說,「它會抓到一些我可能漏掉的東西。」我請他把同一個 PR 丟給 Claude 跑兩次。 第一次 review 說 error handling 看起來很完整。第二次 review…