前几天从Top 100 Best Software Engineering Books, Ever听说这本书,唯一一本关于调试的,想必上榜只有它的道理,于是在卓越订了一本,昨天拿到的书,书很薄,但是看了以后觉得有共鸣,很震撼,相比某些人写的动辄上千页的调试书籍强多了。请允许我的直接,做技术,写书这种事情,讲的就是一个踏实,你不用心,写的东西假大空,写了还不如不写,你不写没人骂你,你一旦粗制滥造,骂你的人一定不少。
首先这不是一本讲具体技术的书籍,他的层次要高些,他已经将软件调试技术上升到了战术层面。说到战术,这本书里面讲的都是非常实际的技巧,字里行间可以看出作者是个调试的行家,没有那些假大空的语言。其实技术这东西本身都是些相对成熟的东西,他不需要我们去创造世界上没有的东西,所以可行性以及能给读者指导性的实际经验是最好的,这就是一本这样的书籍。
挑几个我认为经典的points列出来,希望对大家有所帮助:
1. 不要想,要去看
一旦遇到严重的问题,尽量不要仅仅凭借猜测去看问题,一定要想办法挂接进去,哪怕很麻烦,或者用调试器,或者用trace, log,猜测和分析是必要的,但是那不一定是root cause, 要有真凭实据,一拳将bug打死。
2. 要熟悉系统,一次只改一个地方
Developer不是神,对系统不熟就上去指手画脚,会让人瞧不起的,行家一看就知道你有多大本事,更熟悉系统才能更透彻的知道自己在干什么,看手册,看代码,都是在熟悉系统。步子大了容易扯到蛋,所以你不要一次改动好多地方,一次验证一种猜测比较实际。
3. 分治和协作
最重要的是如何选切入点,如何用更少的步骤缩小问题的范围,另外再牛的人也不可能都懂,有时候分工协作是很重要的。
也许有人觉得以上都是废话,没什么用,可是凭借小弟这么多年来的经验来看,字字精辟,相见恨晚,写这么多啦,建议想在调试上补补战术的兄弟看看这本书,加油。
注:本文只代表个人观点,如果哪位朋友觉得书不好,没用,请忽略这篇文章,本人同作者没有任何利益关系。