[读书]读《重构-改善既有代码的设计》

原创
2016/03/07 21:36
阅读数 111

读《重构-改善既有代码的设计》


断断续续,加上过年,花了快2个月吧,把《重构-改善既有代码的设计》读完了,这里总结下。

  • 发现此书背景

  • 读的感觉

  • 知识感触

发现此书背景

这本书是从同事的桌子上发现的,读了三四页之后就被吸引住了。现在想来,主要是因为作者写的简洁明了,上来第一章就使用了一个简洁而不简单的示例,讲述了重构的过程,而不是一上来就长篇大论,而且作者运用了对比的方式,左侧是重构前的代码,右侧是重构后的代码。一下子就吸引住了我的目光,然后当晚就在办公室读起来,读了很多页。下面就是这货…

读的感觉

读到大半截,发现里面使用的技术虽然是java1.1 1.2,但是还是像封面上讲的依旧是经典,而且真是开发者进阶的书目。

书上叙述的的东西,工作几年后,你可能平时中都有使用,但是作者却是形成了一个体系,以分片段,用对比,讲述这样做重构后的好处及步骤。

同时作者也不会硬性的要求你这样那样去做,他会直接了当的列出各种情况,在哪些情况下,你适合这样去做,以及作者有时候也会说他也分辨不出,让你击节赞叹,你才发现原来我的疑惑是正常的现象,这真是一个很真实很严谨的作者。

知识感触

1.第一个示例完成后,作者开始长篇论,这里很重要。其中的内容解决了大家对重构的各种问题。

我感触很深的有以下几点

  •  重构与设计的关系,开始做设计,很多人会做过度设计,因为设计者为了后续的扩展需要,但是他也知道现在设计多了,考虑成本,也不是多好的一件事情,所以对设计者要求很高,压力很大,但是如果有了重构,就减轻了设计的压力,能够随机应变。

  •  如何保证重构的准确性,建立测试机制,自动化测试,重构先写重构这部分的测试,以保证你任何时候想重构都不害怕改变。

下面是一些其他的一些点,供大家参考:

  •  何为重构

  •  为何重构

  •  何时重构:添加功能;修补错误;复审代码;

  •  怎么对上级说

  •  重构的难题:数据库(中间层解决);修改接口;何时不该重构;

  •  重构和性能

2.
后面一章就开始讲代码的坏味道了,这是大家都熟悉的一章,作者精心的分出了不同的坏的代码,这里不再赘述,比如:过长的方法;重复的代码;不清晰的变量……

3.然后开始重构,第一步建立测试体系,这是一章

4.
如何重构,作者从几个大的方面,每个方面分出不同的点来讲述的:组织函数、对象之间搬移特性、重新组织数据、简化函数调用。大部分是经验丰富的开发者使用的,让人感觉到非常熟悉的感觉。每个都有例子,我很多直接看例子过去的。

举例1:getinvdtlmt 函数改名 getInvoiceableCreditLimit
举例2:很多类内函数自己使用的用private来修饰
举例3:以状态对象来取代状态码获取更好的扩展性
等等…

5.讲述了如何大型重构
大型重构可能是好几年的事情,每天一点点,慢慢来;另外作者也说明了梳理重构思路的一些方式

6.重构的工具
工具日新月异,这章倒是有点过时了,哈哈。

这本书428页,你如果是一个有着一定经验的人,读起来很轻松,而且提升很大。建议有一定经验的人阅读,你不会后悔。


展开阅读全文
打赏
1
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部