[书评] Debugging: 9 Indispensable Rules – 调试九法

  • 崭新磁盘为何用过一次就不好使?
  • 为何屏幕上的所有文本突然不见?
  • 为何 QA 总能搞出乱码问题但开发就是测不出来?

调试(Debug)可能是计算机工程中最被忽视的领域——算法,语言和架构的书籍一抓一大把,但有关调试的书籍几乎没有——你可以在 Code Complete,The Practice of Programming,Writing Solid Code 这些上古程序设计实践书籍中找到一些调试有关的内容。但讲调试的书籍,我只知道 调试九法(英文书名 Debugging: 9 Indispensable Rules 以下简称 D9)这一本。

仔细想想,这并不合理——调试应该是软件工程中最耗时的过程,为啥没人写这方面的书呢?我觉得:

  1. 调试是一线开发技能,但书籍作者往往可能已经远离一线开发,早就忘了咋调试
  2. 调试属于脏活累活,既没有算法那么科学向,也没有架构高大上

D9 应该是唯一一本讲调试的书——它通过各种案例(五花八门,既有软件又有硬件,还有吸尘器热水器)讲述九个调试基本规则:

  1. 理解系统
  2. 制造失败
  3. 不要想,而要看
  4. 分而治之
  5. 一次只改一个地方
  6. 保持审计跟踪
  7. 检查插头
  8. 获得全新观点
  9. 如果不修复 bug,它将依然存在

以上九条规则看起来平平无奇,但经过八年实践(我在工作之前就已经读过 D9),我可以确定:所有我见过的大神都在践行这九条规则,同时,所有我见过的菜鸡都在违背这些规则。

如果查找一个bug花费了大量时间,那么原因可能是忽略了某个最基本的、最重要的规则,一旦应用了那条规则,很快就会找到问题。
擅于快速调试的人已经深刻理解并应用了这些规则,而那些很难理解或使用这些规则的人则很难找到bug。


继续阅读[书评] Debugging: 9 Indispensable Rules – 调试九法

我们能从一本 45 年历史的计算机书中学到什么

人月神话 —— 1999 年图灵奖获得者 Fred Brooks 作于 1975 年,到现在已经快半个世纪。

计算机行业的发展速度不必赘言,

这本上个世纪的书还有用吗?

有用。


第一次见到 人月神话,是在 2007 年,大连奥林匹克电子广场地下二层鹿鸣书店。

鹿鸣书店专门卖计算机/电子科技书籍,所以我当时一度以为 人月神话 摆错了地方,因为它的书名非常像武侠言情小说,比如古龙的新月传奇,或是张国荣的星月童话。

第二次见到 人月神话,是在 2010 年,当时刚刚考完研,打算把计算机经典书籍过一遍,在所有的推荐书单我都发现了这本书。

看来这本书不是武侠言情小说。


第一次阅读,过程十分痛苦:一部分,源自于这本书故作聪明但并不达意的翻译(比如把 Second System Effect 翻译成 画蛇添足 ),另一部分,源自于这本书面向项目经理和有经验的工程师,我一个在校学生,能读出个屁来。

第一遍读完我只记住了书中那句略显逗逼的话:

无论多少个母亲,孕育一个生命都需要十个月。

之后每次别人催我做什么,我都会用这句话顶回去。

所以这本书并不是给在校学生看的,甚至不是给刚入行的看的,要读懂它没个几年经验是不行的。

要是你还在读大学,有人推荐你看人月神话,那个人一定是个大忽悠,或是知乎买书刷返利。

继续阅读我们能从一本 45 年历史的计算机书中学到什么