2017年1月17日 星期二

書評: Effective Debugging


強國 IT 名人 - 孟岩認為快速掌握一門語言最常用的 50% 其要訣之一就是:

「學習異常(exception)、錯誤處理(error handling)、斷言(assert)、日誌(logging)和調試(debug)支持」

也就是學習任何一門新程式語言,除錯是首先必須掌握的技能。

對於老手更不在話下

更別說是軟體開發週期每個環節都逃不了的需求

這樣至關重要的技能,在過去只能靠經驗累積,只能靠口耳相傳,只能靠一些零碎資料

相關書籍不能說沒有,要不太概念化如之前提到的調試九法,或太偏向某個平台(如講專門講 Linux 完全不提 Windows)

像本書內外功一併俱全的,印象中還真的沒有

書中的一些除錯觀念,對於筆者這種老賊來說已經不算新聞,但要知道我是 coding 10 年才換來的,今天你花幾百元就可以得到別人 10 年經驗,這 CP 值高到突破天際啊!

當然以本書的厚度來說,不太可能塞進所有工具的用法,但有了這些關鍵字再去 google 就不是難事了。很像是早期圖書館尚未電腦化時,擺期刊的區域總會擺上一本活頁本,告訴你 xx 櫃有什麼專業期刊,本書就很有這樣的味道。

再配合之前提過的讀書法,這本書會成為一本超棒的除錯指南,更別說連中譯本都有索引,查閱起來超方便

另外,這本書也很罕見的提到了對 multi-threading 的除錯,這是跟他的那些前輩們差異化的地方,但我本人很少使用 multi-threading,這部份就沒仔細看了。正在學 OS 的同學可以本書提到的工具手法來除錯一下哲學家吃飯問題,印象應該會更深刻。

不過本書也不是沒有缺點,中譯本某些地方翻譯的很奇怪,比方說二分搜尋法翻成二進位搜尋法,一看就知道是門外漢翻譯的。

還有對嵌入式系統除錯的介紹幾乎完全沒有,這可能跟作者經驗有關,不過本站已經提供不少技巧了,可視為一種補充

總體而言,這本書非常值得推薦,相較於其他 Effective XYZ 系列沒有足夠根基根本無法一讀,本書可說:「老少咸宜」。2017 年如果你只打算買一本跟 coding 有關的書籍,本書絕對值回票價!

沒有留言:

張貼留言