統計除錯本該終結 printf 除錯時代。大多數團隊卻從沒讓它跑起來。
統計除錯承諾透過將程式行為與失敗關聯來精確定位 bug。以下是這個想法為何從未從研究論文跨進生產系統的原因。
統計除錯本該終結 的時代。在程式碼中插入探針,收集數千次執行的追蹤資料,執行關聯分析,然後看著工具將每個分支與 null check 按照導致當機的可能性排序。它在 2000 年代中期的論文中運作得很漂亮。但在實務中,大多數嘗試過的團隊只得到雜訊、額外負擔,以及一個沒人信任的儀表板。…
2 posts
統計除錯承諾透過將程式行為與失敗關聯來精確定位 bug。以下是這個想法為何從未從研究論文跨進生產系統的原因。
統計除錯本該終結 的時代。在程式碼中插入探針,收集數千次執行的追蹤資料,執行關聯分析,然後看著工具將每個分支與 null check 按照導致當機的可能性排序。它在 2000 年代中期的論文中運作得很漂亮。但在實務中,大多數嘗試過的團隊只得到雜訊、額外負擔,以及一個沒人信任的儀表板。…
Session types 將通訊protocol編碼進型別系統,把執行期protocol錯誤變成編譯期失敗。以下是它們為何在研究論文裡待了三十年,才終於能進入正式產品程式碼。
Session types 發明於 1993 年。三十年後,大多數網路服務仍然用手寫的執行期檢查來驗證protocol狀態,如果它們會驗證的話。你的型別系統對於用戶端是否在 之前就傳送 ,或者是否因為有人忘了關閉連線而導致連線洩漏,完全無從置喙。 研究社群數十年前就有了對策。這從來不是理論問題。問題在於…