读《重构-改善既有代码的设计》
断断续续,加上过年,花了快2个月吧,把《重构-改善既有代码的设计》读完了,这里总结下。
发现此书背景
读的感觉
知识感触
发现此书背景
这本书是从同事的桌子上发现的,读了三四页之后就被吸引住了。现在想来,主要是因为作者写的简洁明了,上来第一章就使用了一个简洁而不简单的示例,讲述了重构的过程,而不是一上来就长篇大论,而且作者运用了对比的方式,左侧是重构前的代码,右侧是重构后的代码。一下子就吸引住了我的目光,然后当晚就在办公室读起来,读了很多页。下面就是这货…
读的感觉
读到大半截,发现里面使用的技术虽然是java1.1 1.2,但是还是像封面上讲的依旧是经典,而且真是开发者进阶的书目。
书上叙述的的东西,工作几年后,你可能平时中都有使用,但是作者却是形成了一个体系,以分片段,用对比,讲述这样做重构后的好处及步骤。
同时作者也不会硬性的要求你这样那样去做,他会直接了当的列出各种情况,在哪些情况下,你适合这样去做,以及作者有时候也会说他也分辨不出,让你击节赞叹,你才发现原来我的疑惑是正常的现象,这真是一个很真实很严谨的作者。
知识感触
1.第一个示例完成后,作者开始长篇论,这里很重要。其中的内容解决了大家对重构的各种问题。
我感触很深的有以下几点
重构与设计的关系,开始做设计,很多人会做过度设计,因为设计者为了后续的扩展需要,但是他也知道现在设计多了,考虑成本,也不是多好的一件事情,所以对设计者要求很高,压力很大,但是如果有了重构,就减轻了设计的压力,能够随机应变。
如何保证重构的准确性,建立测试机制,自动化测试,重构先写重构这部分的测试,以保证你任何时候想重构都不害怕改变。
下面是一些其他的一些点,供大家参考:
何为重构
为何重构
何时重构:添加功能;修补错误;复审代码;
怎么对上级说
重构的难题:数据库(中间层解决);修改接口;何时不该重构;
重构和性能
2.
后面一章就开始讲代码的坏味道了,这是大家都熟悉的一章,作者精心的分出了不同的坏的代码,这里不再赘述,比如:过长的方法;重复的代码;不清晰的变量……
3.然后开始重构,第一步建立测试体系,这是一章
4.
如何重构,作者从几个大的方面,每个方面分出不同的点来讲述的:组织函数、对象之间搬移特性、重新组织数据、简化函数调用。大部分是经验丰富的开发者使用的,让人感觉到非常熟悉的感觉。每个都有例子,我很多直接看例子过去的。
举例1:getinvdtlmt 函数改名 getInvoiceableCreditLimit
举例2:很多类内函数自己使用的用private来修饰
举例3:以状态对象来取代状态码获取更好的扩展性
等等…
5.讲述了如何大型重构
大型重构可能是好几年的事情,每天一点点,慢慢来;另外作者也说明了梳理重构思路的一些方式
6.重构的工具
工具日新月异,这章倒是有点过时了,哈哈。
这本书428页,你如果是一个有着一定经验的人,读起来很轻松,而且提升很大。建议有一定经验的人阅读,你不会后悔。
来源:oschina
链接:https://my.oschina.net/u/947726/blog/632402