在除錯 (Debugging) 過程中,當代碼量龐大且 Bug 位置不明時,除了查看log外,最常用,也是最簡單的就是使用二分法排查,尤其當你面對的是從未碰過的專案時尤為好用(簡單、直觀)。
什麼是二分搜尋 Binary Search?
二分搜尋 (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() 來列出目前狀態,查看資料正確性,看是否如你預期,依此類推,反覆操作,一點一點往下排查,直到找到問題點。
發表迴響