p53 重构(名词):对软件内部结构的一种调整,目的是在不改变『软件之可察行为』前提下,提高其可理解性,降低其修改成本
p55 如果没有重构,程序的设计会逐渐腐败变质
p55 如果消除重复代码,你就可以将所有事物和行为都只表达一次,唯一一次,这正是优秀设计的根本
p57 这让我想起了Kent Beck经常形容自己的一句话:“我不是一个伟大的程序员;我只是个有着一些优秀习惯的好程序员而已”。重构能够帮助我更好地写出强固稳健(Robust)的代码。
p58 Don Roberts 给我我一条准则:第一次做某件事时只管去做;第二次做类似的事会产生反感,当无论如何还是做了;第三次再做类似的事,你就应该重构。
p58 事不过三,三则重构。(Three strikes and you refactor)
p60 因此,我们希望程序:(1)容易阅读;(2)所有逻辑都只在唯一一地点指定;(3)新的改动不会危及现有行为;(4)尽可能简单表达条件逻辑(Conditional logic)
p89 如果认真观察程序员最多把时间耗在哪里,你会发现,编写代码其实只占非常小的一部分。有些时间用来决定下一步干什么,另一些时间花在设计上面,最多时间是用来调试(Debug)。我敢肯定每一位读者都还记得自己花在调试上面的无数个小时,无数次通宵达旦。每个程序员都能讲出“花一整天(甚至更多)时间只找出一只小小臭虫”的故事。修复错误通常比较快,但找出错误却是噩梦一场。当你修好一个错误,总是会有另一个错误出现,而且肯定要很久以后才会注意到它。彼时你又要花上大把时间去寻找它。