这段时间阅读了《程序员修炼之道——从小工到专家》5-7章,并且重新阅读了第四章内容(内容有点忘记了),第四章名为“注重实效的偏执”,开头就是刺人脊梁的一句话——“你不可能写出完美的软件”。这是事实,但是这种压抑人心的事实,有时却也能变作强力已知,改变结果。作为一个注重实效的程序员,他们知道没有人能编写完美的代码,包括自己,所以注重实效的程序员针对自己的错误进行防卫性的编码没错,我们知道自己的编程不可能完美,那么我们要怎么做呢?编写一些可以防止出错,或者反馈错误信息的代码块尤为重要,作者在这一章提出了很多很多的概念,很多很多的方法,毫不羞愧的说,我能看懂的只有十之一二。但是作者所说的“死程序不说谎”让我大为震惊。我们很容易掉进它不可能发生这样一种心理状态,我们中的大多数人编写的代码都不检查文件是否能成功关闭,或者某个跟踪语句是香已按照我们的预期写出而如果所有的事情都能如我们所愿,我们很可能就不需要那么做-这些代码在任何正常的条件都不会失败,但我们是在防卫性地编程,我们在程序的其他部分中香找破坏堆钱的"淘气指针",我们在检查确实加载了共享库的正确版本所有的错误都能为你提供信息 你可以让自己相信错误不可能发生,并选择忽略它但与此相反,注重实效的程序员告诉自己,如果有一个错误,就说明非常,非常糟糕的事情已经发生了是这样的!完全是这样的!我在以往的编写过程中,根本不会在意一个warning,根本不会在意数据库是否关闭,文件操作是否关闭了文件。似乎我们只注重当下的结果。从来不去想未来的结果。

个人感受我印象最深刻的一次是在寒假做APP时导出APK,出了一个错,错误是因为某些致命错误导致的,但是改正错误也很简单,只要加一段忽略错误的代码即可。我不假思索的添加了这段代码,而没有继续去想到底是哪个致命错误。后来出了错,才知道是几个Textview之间出了问题。在这学期的php连接mysql的学习中,我一直发现我的Navicat总是崩溃,以为是Navicat的问题,重装多次无果,费劲力气发现——php操作数据库后没有关闭数据库。是的,我们不可能编写出完美的软件,但是正因如此,在未来的学习中我要努力规避我能考虑到的每一个错误。我我要试着熟悉每一个错误,学会多思多虑。如书中引用的名句

没有什么比常识和坦率更让人感到惊讶——拉尔夫沃尔多 愛默生,《散文集》