~/VibeHandbook
免費 PDF

12 · 02

一份除錯清單

按順序逐項完成這些步驟。直接跳到"修好它"正是讓 AI 兜圈子的原因。

  1. 可靠地復現它。 找到每次都能讓 bug 出現的確切步驟。一個你無法復現的 bug,是你無法確認自己已經修好的 bug——你將永遠只是在猜測它是否消失了。如果它是間歇性出現的,去捕獵那個讓它切換的變數:某個特定輸入、登入還是登出的狀態、緩慢的網路。
  2. 閱讀真正的錯誤資訊。 不要略讀。錯誤資訊和堆疊跟蹤的頂部通常會指出出問題的檔案和行號。初學者常常因為某句話看起來嚇人,就略過了螢幕上最有用的那句。
  3. 收集上下文。 收集錯誤文本、堆疊跟蹤、相關程式碼,以及一句話描述你期望的結果。
  4. 把完整的畫面交給 AI。 把以上所有內容貼上在一條訊息裡。讓它形成一個假設。
  5. 形成假設,而不是修復方案。 在"修好這個"之前先問"什麼可能導致這個?"。基於錯誤理論的錯誤修復只會浪費時間——有時還會在第一個 bug 之上疊加一個第二個 bug。
  6. 新增日誌來測試假設。 在修改程式碼之前,先確認程式碼實際在做什麼。
  7. 二分查詢問題。 通過反覆將可疑區域對半切分,縮小故障發生的位置
  8. 修復根本原因,而非表象。 確保修復針對的是它為什麼出問題,而不僅僅是可見的故障。
  9. 驗證修復並檢查回歸。 重新運行復現步驟。然後確保附近的功能仍然正常工作——所謂迴歸,就是一個修復悄悄弄壞了原本好好的東西,就像補好一處漏水,旁邊的管子卻爆了。

這份清單其實就是一個你不斷繞行、直到 bug 消失的迴圈。每個方框都把證據交給下一個,而一次失敗的驗證只會帶著你學到的東西重新繞一圈:

   ┌──────────────┐
   │     復現     │  讓它每次都發生
   └──────┬───────┘
          ▼
   ┌──────────────┐
   │  讀錯誤 +    │  它到底在說什麼?
   │     收集     │  收集 trace+程式碼+上下文
   └──────┬───────┘
          ▼
   ┌──────────────┐
   │     假設     │  "什麼會導致這個?"
   └──────┬───────┘
          ▼
   ┌──────────────┐
   │  用日誌      │  加條日誌,拿到證據
   │     確認     │
   └──────┬───────┘
      錯誤│  正確
   ┌──────┘ 猜測    ▼
   │            ┌──────────────┐
   │ (新        │  修根本      │  而非表象
   │  理論)     │     原因     │
   │            └──────┬───────┘
   │                   ▼
   │            ┌──────────────┐    失敗 / 迴歸
   └────────────┤     驗證     │──────────┐
                │ + 迴歸檢查   │          │
                └──────┬───────┘          │
                       │ 通過             │
                       ▼          ◀───────┘
                    ✔ 完成      (繞回去再來)

這個順序並非隨意。每一步都產生下一步所需要的證據。復現給你提供可讀的東西;閱讀給你提供可收集的上下文;上下文給 AI 提供可做假設的素材。跳過一步,你就是在給下一步喂一個窟窿。

想離線閱讀?

免費下載整本書的 PDF 或 EPUB。