
Day 02 談完 ChatGPT 與 Codex 的分工後,但「選對工具」只解決一半問題,操作介面選錯一樣會卡手。今天的案例是要修正 Java 購物車缺陷時,我先用 ChatGPT 確認預期行為,再到 Codex 開啟專案,最後用 Maven 跑測試。如果每一步都靠複製貼上銜接,不止會中斷心流,還得重複送出相同上下文,所以今天我們要來探討怎樣能讓我們的心流不會被中斷。
| 操作介面 | 我會在什麼時候用 | 需要先注意什麼 |
|---|---|---|
| ChatGPT App | 任務會用到本機檔案或桌面工具 | 只開放工作需要的資料與權限 |
| ChatGPT Web | 臨時討論、研究或整理上傳檔案 | 先確認方案與工作區允許的功能 |
| OpenAI API | 需要批次、自動觸發或整合進系統 | 金鑰、成本、錯誤處理都要自己管理 |
| 操作介面 | 我會在什麼時候用 | 需要先注意什麼 |
|---|---|---|
| Codex App | 同時管理專案、對話與較長任務 | 執行紀錄、產物與檔案差異 |
| Codex CLI | 終端機內連續讀檔、修改和測試 | 實際命令及完整輸出 |
| Codex cloud | 將可重建的工作交給遠端繼續執行 | 環境設定、摘要、差異與測試 |
介面可以依習慣切換,驗收標準不能跟著放寬。至少要看清楚改了哪些檔案、執行了哪些命令,以及測試到底有沒有開始。

以上是我的程式測試執行版本,不代表大家都得裝同一套版本;只要專案可以重現問題、執行測試、查看差異並在需要時還原,就足以開始練習。產品介面與方案則要在發布當日再確認一次。
Day03 專案的 ShoppingCart.calculateTotal() 會先加總金額,再用商品數量計算平均值。購物車是空的時候,原始程式仍然執行除法,因此修正前跑 mvn test,兩項測試中有一項出現 ArithmeticException。我限定 Codex 只能修改總額計算方法,不能更動測試與既有折扣邏輯。
實際加入的程式只有空清單判斷:
if (items.isEmpty()) {
return 0;
}
重跑時還碰到另一個狀況:Maven 因網路權限無法下載外掛。這時候 JUnit 其實還沒執行,不能看到紅字就認定修正失敗。我確認下載來源後,只核准這次測試需要的連線;再次執行,兩項測試全部通過。接著檢查 Codex 的變更畫面,確認沒有順手改測試,也沒有夾帶無關重構。

完整輸出放在 Day 03 驗證紀錄。這次需求、修改和驗證能留在同一條工作脈絡裡;不過上下文越完整,也越要控制機密資料、檔案範圍與網路權限。
我會先選一個能完成「交代任務、修改、測試、看差異」的操作介面,再依工作需求補上其他工具。全部都用不等於效率更高,要選擇適合自己習慣的工具並且能留下可核對的證據才重要。Day 04 會先用一個開場故事帶出這次需求有多模糊,Day 05 接著使用這套環境,把它整理成可以確認與驗收的技術規格。