守衛和規則為什麼會誤觸
守衛和規則為什麼會誤觸
你寫了一個守衛或規則(hook、linter、regex),它邏輯看起來沒錯,卻命中了不該命中的東西——這是規則層的誤報。多半的根因是同一個:規則寫得比意圖寬。
因、果、與一個切面
- 機制(因):規則涵蓋範圍超出意圖,叫 over-match(過寬匹配)。
- 結果(果):守衛因此被形似但非真意圖的輸入觸發,叫 false trigger(誤觸)。
- linter 切面:靜態分析報的偽警告,叫 spurious warning。
怎麼想這件事
誤觸不是「偵測器壞了」,是規則的範圍沒收好。收窄規則時要拿捏:太寬會誤觸(誤報),太窄會漏掉真的(漏接)。這個拉扯就是怎麼量偵測器裡 precision 與 recall 的取捨。
從這裡往下讀
- over-match:規則過寬而誤命中。
- false trigger:守衛被誤觸。
- spurious warning:linter 的偽警告。