調試九法:軟硬件錯誤的排查之道<書評>
前幾天從Top 100 Best Software Engineering Books, Ever聽說這本書,唯一一本關於調試的,想必上榜只有它的道理,於是在卓越訂了一本,昨天拿到的書,書很薄,但是看了以后覺得有共鳴,很震撼,相比某些人寫的動輒上千頁的調試書籍強多了。請允許我的直接,做技術,寫書這種事情,講的就是一個踏實,你不用心,寫的東西假大空,寫了還不如不寫,你不寫沒人罵你,你一旦粗制濫造,罵你的人一定不少。
首先這不是一本講具體技術的書籍,他的層次要高些,他已經將軟件調試技術上升到了戰術層面。說到戰術,這本書里面講的都是非常實際的技巧,字里行間可以看出作者是個調試的行家,沒有那些假大空的語言。其實技術這東西本身都是些相對成熟的東西,他不需要我們去創造世界上沒有的東西,所以可行性以及能給讀者指導性的實際經驗是最好的,這就是一本這樣的書籍。
挑幾個我認為經典的points列出來,希望對大家有所幫助:
1. 不要想,要去看
一旦遇到嚴重的問題,盡量不要僅僅憑借猜測去看問題,一定要想辦法掛接進去,哪怕很麻煩,或者用調試器,或者用trace, log,猜測和分析是必要的,但是那不一定是root cause, 要有真憑實據,一拳將bug打死。
2. 要熟悉系統,一次只改一個地方
Developer不是神,對系統不熟就上去指手畫腳,會讓人瞧不起的,行家一看就知道你有多大本事,更熟悉系統才能更透徹的知道自己在干什么,看手冊,看代碼,都是在熟悉系統。步子大了容易扯到蛋,所以你不要一次改動好多地方,一次驗證一種猜測比較實際。
3. 分治和協作
最重要的是如何選切入點,如何用更少的步驟縮小問題的范圍,另外再牛的人也不可能都懂,有時候分工協作是很重要的。
也許有人覺得以上都是廢話,沒什么用,可是憑借小弟這么多年來的經驗來看,字字精辟,相見恨晚,寫這么多啦,建議想在調試上補補戰術的兄弟看看這本書,加油。
注:本文只代表個人觀點,如果哪位朋友覺得書不好,沒用,請忽略這篇文章,本人同作者沒有任何利益關系。