零個、一個,還是十二個:一個 production function 到底需要多少 assertion
開發者要不是把 assertion 灑滿整份程式碼,就是完全避開它們。這裡有一個決策框架,能幫你區分出有用的 invariant 與會導致 production crash 的觸發條件。
大多數 production codebase 可以分成兩大陣營。A 陣營把 當成裝飾調味料,每隔幾行就撒上一點,直到 function 讀起來像偏執律師寫的法律合約。B 陣營把 assertion 當成只在開發階段用的輔助輪,在 build 時全部拿掉,然後祈禱程式在 production…