紀錄工作經驗、相關知識,解決技術相關問題。

工作雜談, 新手 Jamp Holes, 未分類, 網站相關, 資訊相關

Debug 方法:使用二分搜尋 (Binary Search) 來排查 Bug

在除錯 (Debugging) 過程中,當代碼量龐大且 Bug 位置不明時,除了查看log外,最常用,也是最簡單的就是使用二分法排查,尤其當你面對的是從未碰過的專案時尤為好用(簡單、直觀)。

二分搜尋 (Binary Search) 一種常見於搜尋演算法的技術,也可以應用在除錯上,以系統化的方式快速找出錯誤點。

簡單理解,就像你想在一塊蛋糕中,找出一片蛋殼,最直觀的方法,將一塊蛋糕平均一刀切,你先檢查左邊的,沒問題在檢查右邊的,如果左邊有問題呢? 那左邊就在一刀切,一直循環,直到你找到問題。

二分搜尋除錯法的優勢

高效縮小範圍:每次測試都能減少 50% 需要檢查的代碼。
系統化排查:不依賴猜測,能快速找出 Bug 根源。
適用於各種場景:不管是函式調試、前端 UI 渲染錯誤,還是 Git 版本回溯,都能使用這種方法。

如何使用二分搜尋 Binary Search 排茶錯誤

了解概念後,這裡就列一個簡單的範例,假設你有一個主要 function ,裡面執行了多個 function,如下:

const main = () => {
   const a = callA()
   const b = callB()
   const c = callC()
   const d = callD()
   const e = callE()
}

你最簡單的方式,可以將一半先關閉,查看執行狀況,如下:

const main = () => {
   const a = callA()
   const b = callB()
   const c = callC()
   // const d = callD()
   // const e = callE()
}

你也可以加上 console.log() 來列出目前狀態,查看資料正確性,看是否如你預期,依此類推,反覆操作,一點一點往下排查,直到找到問題點。

參考資料

二分搜尋演算法 (Binary Search) – Wikipedia

發表迴響