這篇文章主要是記錄閱讀下面論文的觀點以及自己的感受
論文:Simple Testing Can Prevent Most Critical Failures:
An Analysis of Production Failures in Distributed
Data-Intensive Systems
論文摘要
case1:嚴重系統(tǒng)錯誤中的92%是由于對于非嚴重錯誤的錯誤處理導致的煤篙,而這些非嚴重錯誤在軟件中也明確有出現(xiàn)
case2:嚴重錯誤中的58%逝钥,這些錯誤中的底層錯誤能夠很容易得通過測試異常代碼來檢測出來
case3:系統(tǒng)中有77%的錯誤需要超過一個輸入事件來出現(xiàn)运挫,90%錯誤出現(xiàn)的輸入事件要求少于3個于颖。
case4:88%的錯誤,這些錯誤需要多個事件才能出現(xiàn)梅忌,而這些事件需要特定的順序才能觸發(fā)這些錯誤
case5:77%的錯誤可以由單元測試進行復現(xiàn)
感想
- 軟件開發(fā)中,針對異常或者錯誤處理一定要小心謹慎泞莉,不能忽略,需要有合適并且具體的處理船殉。并且針對這些代碼需要有單元測試來進行覆蓋鲫趁。
- 針對代碼中的異常處理,必須要有具體的處理有段利虫。不能忽略挨厚,不能只記錄todo或者fixme而不處理,同時異常一般不要采用通用異常(類似java中dException代表大部分異常)
- 代碼中的異常處理通常是bug來源的地方糠惫,所以在cr的時候要著重檢查這些地方疫剃,同時單元測試也要盡量覆蓋這里。
- 雖然功能開發(fā)很重要硼讽,但是異常處理以及單元測試也非常重要巢价。