調試九法:軟硬件錯誤的排查之道-讀後總結

這本書是在來到上海後買的,當時是面試完後回來按照慣例刷每日kindle優惠電子書,看到kindle電子書有推薦相關的書----軟件調試的藝術,看到相關的評論對此書的評價不高,就順便搜索了一下類似的書籍,就找到了這本書----調試九法:軟硬件錯誤的排查之道,這本書在買的電子書中,價格算是比較高的,可是是很是物超所值的。記得小道消息的Fenng在文章中說的頗有道理,大體意思是這樣:若是一本書裏面有內容對你有用,那麼就是一本很好的書,幾十塊的價格能買到對你有用的道理,是很是划算的。因此,若是面對一本書,若是是價格因素讓你遲疑的話,那就買下吧。html

扯了那麼多沒用的,該切到主題了,那就是對這本的讀後總結了。一本書,作作讀書總結,會讓你記憶更深入。面試

本人是一名軟件(cheng)工(xu)程(yuan)師,因此總結的視角主要是軟件相關的角度。網絡

這本書主要內容是對找出軟硬件中bug方法的總結,做者分了九條,分別是:
工具


1.理解系統 2.製造失敗 3.不要想,而要看
4.分而治之 5.一次只改一個地方 6.保持審計跟蹤
7.檢查插頭 7.得到全新觀點 9.若是不修復bug,bug不會消失

你們能夠在 這裏下載做者所作的海報,能夠打印下來貼在工位旁邊來輔助記憶。

書在開始的時候,首先說明,在調試開始的時候,首先須要作的是:測試

瞭解系統,即得先知道系統的邏輯,瞭解什麼是對的---這樣的話,就會知道什麼是錯的了。同時知道如何獲取手冊(資料),還須要瞭解調試所須要的工具--工欲善其事,必先利其器。debug

作好準備工做後,就開始和bug決鬥了----在bug和你之間,只有一個勝利者調試

若是你有調試bug的經歷,首先想到的八成是重現bug,這樣作的好處有:orm

  • 能夠直觀地觀察bug,這樣就能夠對bug有個直觀的認識。
  • 能夠專心地查找緣由,由於知道如何復現bug的時候,只須要對某些個特定的場景進行關注便可。
  • 判斷bug是否被修復,若是進行修復後,再執行復現bug操做,若是失敗率爲0,則說明bug已經被修復。

以上是重現bug的好處,可是,在重現bug的時候,須要注意:不要模擬失敗,其含義是:模擬失敗發生的條件(網絡在高流量下發生錯誤,那就製造高流量的場景讓錯誤重現),不要試圖模擬失敗自己。由於在不清楚bug緣由的時候,在機理上進行模擬,會很容易走彎路的。htm

在調試中間,若是有想法,要進行驗證,咱們是工程師,要拿事實說話。有想法的話,不要怕搭建場景的麻煩(中槍-_-||)。調試中間,咱們能夠在系統中寫一些代碼來輔助調試(要機器,不要人),若是須要寫輔助的小工具的話,要保存下來,方便之後驗證。在寫輔助代碼的時候,須要注意不對原先的邏輯產生影響。get

在實際應用中,你們可能對這個很熟悉--分而治之,若是面對的系統比較大,那麼就須要進行分割,來肯定問題到底出如今哪一點,咱們能夠根據系統的業務邏輯,來進行每一個模塊的驗證,這樣就能夠肯定問題到底出在哪一個模塊了。

到這裏,你們應該是找到出錯的地方了,這個時候就開始動手了,在進行修復的時候,很重要的一點就是一次只修改一個地方,到這裏請默唸三遍,由於重要的事情要所三遍。若是一個bug可能與多個緣由有關,咱們一次改兩個,結果正常了,那麼究竟是哪一個緣由呢?因此在進行更改的時候,一次只改一個,若是不是這個緣由,那麼恢復後再進行下個緣由的測試。

在記錄bug的時候,必定把進行的操做,操做的順序和結果都記錄下來,這樣能夠造成記錄,有助於咱們進行bug緣由的分析,同時注意,記錄要儘量詳細,由於在不知道bug產生緣由的時候,一些絕不起眼的小細節可能就是罪魁禍首。書中舉了一個花格子襯衫引發的bug的例子,你們能夠去看一下。

當咱們試過各類方法後,仍然毫無頭緒的時候,可能就須要檢查一下電源插頭了,在不少時候,也可能使咱們先入爲主的假設影響了咱們,在這個時候,就須要咱們來進行一些懷疑了,例如:是否運行正確的代碼?是否進行正確的初始化?使用的工具是否有錯誤?

在調試方法中,有一種頗有趣的方法---小黃鴨調試法,具體執行過程很簡單,即向一我的講解這個問題,這對咱們思路的整理頗有用處。也能夠向專家尋求幫助,放下所謂的自尊,把問題解決纔是根本的目標。

若是你只是尋求一些臨時的方法來解決問題,那麼問題仍然存在,例如系統在流量過大會產生錯誤,你限制流量,問題就消失了,這並非解決問題,而是掩蓋問題了,因此,在權宜之計後,仍是須要找出問題的緣由。

以上就是看這本書的總結。推薦各位有時間看下。

[4/30]

相關文章
相關標籤/搜索