扯了那麼多沒用的,該切到主題了,那就是對這本的讀後總結了。一本書,做做讀書總結,會讓你記憶更深刻。
本人是一名軟體(cheng)工(xu)程(yuan)師,所以總結的視角主要是軟體相關的角度。
這本書主要內容是對找出軟硬體中bug方法的總結,作者分了九條,分別是:
1.理解系統 2.製造失敗 3.不要想,而要看書在開始的時候,首先說明,在除錯開始的時候,首先需要做的是:4.分而治之 5.一次只改乙個地方 6.保持審計跟蹤
7.檢查插頭 7.獲得全新觀點 9.如果不修復bug,bug不會消失
了解系統,即得先知道系統的邏輯,了解什麼是對的---這樣的話,就會知道什麼是錯的了。同時知道如何獲取手冊(資料),還需要了解除錯所需要的工具--工欲善其事,必先利其器。做好準備工作後,就開始和bug決鬥了----在bug和你之間,只有乙個勝利者。
以上是重現bug的好處,但是,在重現bug的時候,需要注意:不要模擬失敗,其含義是:模擬失敗發生的條件(網路在高流量下發生錯誤,那就製造高流量的場景讓錯誤重現),不要試圖模擬失敗本身。因為在不清楚bug原因的時候,在機理上進行模擬,會很容易走彎路的。
在除錯中間,如果有想法,要進行驗證,我們是工程師,要拿事實說話。有想法的話,不要怕搭建場景的麻煩(中槍-_-||)。除錯中間,我們可以在系統中寫一些**來輔助除錯(要機器,不要人),如果需要寫輔助的小工具的話,要儲存下來,方便以後驗證。在寫輔助**的時候,需要注意不對原先的邏輯產生影響。
在實際應用中,大家可能對這個很熟悉--分而治之,如果面對的系統比較大,那麼就需要進行分割,來確定問題到底出現在哪一點,我們可以根據系統的業務邏輯,來進行每個模組的驗證,這樣就可以確定問題到底出在哪個模組了。
到這裡,大家應該是找到出錯的地方了,這個時候就開始動手了,在進行修復的時候,很重要的一點就是一次只修改乙個地方,到這裡請默念三遍,因為重要的事情要所三遍。如果乙個bug可能與多個原因有關,我們一次改兩個,結果正常了,那麼到底是哪個原因呢?所以在進行更改的時候,一次只改乙個,如果不是這個原因,那麼恢復後再進行下個原因的測試。
在記錄bug的時候,一定把進行的操作,操作的順序和結果都記錄下來,這樣可以形成記錄,有助於我們進行bug原因的分析,同時注意,記錄要盡可能詳細,因為在不知道bug產生原因的時候,一些毫不起眼的小細節可能就是罪魁禍首。書中舉了乙個花格仔襯衫引起的bug的例子,大家可以去看一下。
當我們試過各種方法後,仍然毫無頭緒的時候,可能就需要檢查一下電源插頭了,在很多時候,也可能使我們先入為主的假設影響了我們,在這個時候,就需要我們來進行一些懷疑了,例如:是否執行正確的**?是否進行正確的初始化?使用的工具是否有錯誤?
在除錯方法中,有一種很有趣的方法---小黃鴨除錯法,具體執行過程很簡單,即向乙個人講解這個問題,這對我們思路的整理很有用處。也可以向專家尋求幫助,放下所謂的自尊,把問題解決才是根本的目標。
如果你只是尋求一些臨時的方法來解決問題,那麼問題仍然存在,例如系統在流量過大會產生錯誤,你限制流量,問題就消失了,這並不是解決問題,而是掩蓋問題了,所以,在權宜之計後,還是需要找出問題的原因。
以上就是看這本書的總結。推薦各位有時間看下。
[4/30]
除錯九法 軟硬體錯誤的排查之道
理解系統 這是第一條股則,因為它是最重要的。製造失敗 雖然看起來很簡單,但如果不製造失敗的話,除錯就會變得很困難。不要想,而要看 憑空想象,問題可能有幾千條原因。而實際原因只有去看了才能發現。分而治之 當bug的藏身之地不斷被縮小一半時,它將很難再隱藏下去。一次只改乙個地方 我們在生活中要有一點先見...
《除錯九法 軟硬體錯誤的排查之道》簡要
本書的主旨不在預防 保證或篩選,將教給你如何準備查詢bug,如何挖掘並仔細審查各種線索,以便找到根源,追蹤實際問題,並修復它,然後確認你已經修復問題。雖然本書介紹的方法和系統都是通用的,但它們都緊緊圍繞乙個重點,那就是查詢bug 的根源並修復。規則l 理解系統 規則2 製造失敗 規則3 不要想,而要...
書籍推薦《除錯九法 軟硬體錯誤的排查之道》
本文閱讀時間3分鐘 每個開發者都必須都的一項技術,debug,最近讀了一本關於除錯的書分享給大家,書的內容不到200頁,一口氣讀下來,估計需要乙個小時,速度內容簡單明瞭,主要是作者20多年的工作中除錯經驗的總結,作者作為一名軟體開發人員的工作除錯經驗,同樣適用其他領域開發人員,同時,解決問題的思路也...