首页  编辑  

結尾:何去何從?

Tags: /超级猛料/Book.凤毛麟角(电子书籍片断)/完美程式設計指南/   Date Created:

結尾:何去何從?

本书就快结束了。你大概会怀疑,我真的相信人们写得出零错误程序吗?答案,当然是不,而且我绝对不相信人们作得到。可是我相信你能够写出相当接近零错误的程序,比你现在所能做到的更接近零错误的境界。对房子里的房间,你可以选择要漆上颜色的地方而保持不要上新漆的地方原封不动的,可是你得先在上漆前脱下衣服,贴好护板,小心在护板范围外的墙上漆上你想要的颜色。如果你不想让油漆到处乱沾,你就一定得耗上一番功夫控制好上油漆的动作。同样的,要让臭虫远离你写出来的程序,你也得耗上一番功夫。而且只有下定决心了,你才会去下这番功夫。

即使你将写出零错误程序行为优先要事,你也不能光靠本书中传授的技巧,你不可能光靠别人的指示就写出零错误程序。重要的是你要省思自己如何在未来的日子里找出错误或避免你碰到过的错误继续出现在你的程序中。你思索得到的结果可能会让你自己大吃一惊,就像我也曾经发现过原来我过去的做法会带来问题一样。

有一次我在检查一个 Microsoft Excel 原始码主档时,不小心删掉了一行程序,造成重新计算引擎中出现一个严重而隐藏着的错误。我没发现我的失误,而我写的一个功能连同这个错误一起更新进了原始码主档中。最后有人找到了这个错误,并发现是我删掉的那行程序造成这个问题。当我反省我该怎样找出类似的问题或避免同样的错误再度发生时,我得到一个清楚的答案:在我把修改的东西更新到原始码主档以前使用原始码控制管理程序找出我作了哪些修改。这额外的步骤作起来不花什么时间,在我开始那样作之后的五年里,原始码控制管理程序帮我抓到了三个严重的错误跟一大堆我改了程序后忘了还原的小修改。花了这些功夫,五年里才抓到三个严重的错误,值得吗?是的,对我来说是值得的,因为那么作不用花什么时间,而且我知道如此一来就不会让什么改错的东西出现在原始码主档案中。再一次的,你得决定让错误免于出现在程序中的优先与否。

你会发现检查程序有助于解决你的问题,帮产品写出内部工作用的更好文件对避免错误也有所帮助。如果你没用程序单元测试的做法,也许你应该开始这么做。你甚至会发现值得特别加上一些除错码对帮你测试程序的人会有所帮助。

现实上,你永远不能完全将程序中的臭虫消除掉,可是你能够持续努力避免每个你碰到的错误再次出来,让错误出现的机率大幅降低。为了帮你省下一些功夫,我在附录 A 提供了一份涵盖本书中最重要的一些准则的程序写作检查表。

成功写出零错误程序的最后关键在于最后一条准则:

不二过。

不要犯下相同的错误。