一、构筑测试体系
在一个程序员的日常工作中,大概只有两件事:思考如何写新的代码,改旧代码中的bug。其中在做改bug时,我相信大多数人和我一样,时间更多的是花在找到这个bug上,其实该bug大多时候都是很快的。而为建立测试体系可以帮助你更快的找到bug。建立测试体系时可以为每个类都建立其单独的测试出口,就是一个main函数一样的东西,也可以给每个类留一个测试调用的接口,然后再为整个工程建立一个单独的测试类,当然这个测试类再每次有新的类被添加时都可能需要被修改。
作者在第四章讲了一个测试用的java框架,但是由于这个框架太老而且作者也讲得较为浅,对于复杂工程添加测试体系还需要自己单独的去学习一遍,这里就不多写了。
二、重构列表
重构需要有一个列表或是图来记录,记录包括修改的一切,变量、函数、类、算法等等,最好是对比着记录,这样更清晰。
这两章很简短其中的内容也没有讲的太深,都是为了更好的重构而做的辅助工作,而这些辅助工作需要自己去学习去研究。首先要去思考如何为自己的程序添加测试体系,需要注意的是添加测试体系是为了帮助开发人员节约测试的时间,但如果为工程建立一个测试体系太过复杂那么可能得不偿失,例如我在做的一个程序,输出的结果是根据我输入的数据计算出的值,那么除了某些特定值我很难为他建立一个向作者那样可以直接告诉你结果是否OK的测试结构,因为我自己也不知道输入一些数据后的出来的会是什么。当然我也可以选择每次都输入同一组数据,那么得到的结果是固定的就可以很简单的建立测试结构了,但是这样测试结果很可能具有偶然性。所以建立测试体系其实是不亚于重构的一门学问,也需要并且也值得花费时间精力去研究学习。另一章是说在重构过程中要有计划的修改,确保自己修改的代码是应该被修改的,并且如果修改的有问题还可以根据记录撤回去,当然这份记录也可能会成为后来人学习研究你的代码的宝典。
今天只看了一个半小时,因为最近睡得比较晚加上感冒导致可能有点虚弱,昨晚睡觉时甚至感到了耳鸣。。。真的太可怕了,希望所有的程序员在写出精彩代码的同时可以有一个好身体吧。。。。