重 构

终于把重构读完了,说实话,觉得它"闻名不如见面",好多东西和设计模式重复了.好吧,也多年以后我会觉得我错了,而且大错特错,我应该好好再读次.2012.06.03(BTY目前半年重构经验)

以下出自重构的要点列表,精华居然在书的最后...

1.如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序,使特性的添加比较容易,然后再添加特性.

2.重构前,先检查自己是否有一套可靠的测试机制.这些测试必须有自我检验能力.

3.重构技术就是以微小的步伐修改程序.如果你犯下错误,很容易便可发现它

4.任何一个傻瓜都能写出计算机可以理解的代码.唯有写出人类容易理解的代码,才是优秀的程序员.//好吧,我希望能做到这一点

5.重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本

6.重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构

7.事不过三,三则重构

8.不要过早发布接口.请修改你的代码所有权政策,使重构更顺畅

9.当你觉得需要撰写注释时,请先尝试重构,试着让所有注释都变得多余.//我觉得当你需要写很麻烦,啰嗦的注释时,找个好的办法重写它吧,不要说找不到,优秀程序员的茴字可不止一种写法.

10.确保所有测试都完全自动化,让它们检查自己的测试结果

11.一套测试就是一个强大的bug侦测器,能够大大缩减查找bug所需要的时间.//深有体会,但目前我无法在测试程序中覆盖所有的测试用例...

12.频繁地运行测试.每次编译请把测试也考虑进去---每天至少执行每个测试一次.

13.每当你收到bug报告,请先写一个单元测试来暴露这只bug.//是的,重现它很重要

14.编写未臻完善的测试并实际运行,好过对完美测试的无尽等待.

15.考虑可能出错的边界条件,把测试火力集中在那儿.//边界条件可是测试人员的基本啊,当然程序员也很有必要有这样的思维

16.当事件被大家认为应该会出错时,别忘了检查是否抛出了预期的异常.//我想说:我曾经是个java程序员,当然c++也是有异常的...

17.不要因为测试无法捕捉所有的bug就不写测试,因为测试的确可以捕捉到大多数bug

猜你喜欢

转载自xiangjie88.iteye.com/blog/1549532