多數人談「跟 AI 一起寫程式」,很容易把注意力放在 Prompt:怎麼問得更精準、怎麼讓 AI 產生更好的程式碼。 但在這個專案的第一階段走完幾個 Task 之後,我得到了一個有點不一樣的答案: 「真正影響 AI 協作品質的,不只是你怎麼問 AI,而是你替 AI 建立了什麼樣的工作環境。」 這個環境裡,有規則、有任務邊界、有測試,也有獨立的檢查與驗證。而我自己真正需要做的,反而不是一直「教 AI 寫程式」,而是在它給出一個看似合理的答案時,多問幾次: 「你確定嗎?」 以及: 「我們真的驗證過了嗎?」 這五個 Task,最後留給我的,不只是一批程式碼,而是五個我認為值得帶進下一個專案的工程習慣。 ________________________________________ # 第一課:讓「能不能跑」當裁判,而不是「讀起來對不對」 專案早期,我曾經非常相信文件。一份設定檔看起來合理,一份規格也寫得完整,AI 審查過、我自己也看過,似乎就應該沒問題。 直到有一次,我們把容器真正建置起來,結果掛了。問題不是某一行設定寫錯,而是建置方式讓原始碼在開發環境中只是被「連結」進去,到了正式映像檔的階段,原始碼目錄消失,連結自然也跟著失效。 如果只看設定檔,很難發現這件事情。但只要真的建置、真的執行,問題立刻就出現。那次之後,我開始把一個很簡單的原則放進專案: 「凡是可以透過執行驗證的事情,就不要只靠閱讀來相信。」 一段寫在註解裡的限制,可能永遠沒有人注意;但如果它變成一個會失敗的測試,系統就會主動告訴你。所以後來遇到「這個東西應該可以跑」的說法,我不再把它當成結論。 實際跑一次! 讓執行結果說話。 ________________________________________ # 第二課:連你手上的尺,都要先量過一次 當我開始依賴測試之後,又遇到另一個問題: 「如果測試本身就不可靠呢?」 於是我們開始用變異測試,故意把程式改壞,再看看測試能不能抓到,結果真的抓到問題了——但不是我們原本想測的問題。 有些測試單獨執行時可以正常失敗,連續執行卻偶爾會放過錯誤。一 路追查後,才發現底層的快取機制會依賴檔案修改時間;在特定情況下,系統誤以為檔案沒有改變,於是繼續使用舊版本。 換句話說: 「我們用來量品質的尺,本身量錯了。」 另一個例子也很有意思。獨立審查 AI 曾經判斷某個日誌工具...