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

目录结构

  本书的内容结构:第1章介绍了重构是什么,用一个简单示例说明重构的过程,第2章介绍了为什么应该重构,第3章介绍了应该在什么地方重构,第4章介绍了如何构筑测试体系,第5-12章介绍了作者总结出来的一系列重构手法列表。第13章,介绍重构、复用和现实情况的探讨,第14章介绍重构工具

什么是重构

  所谓重构是这样一个过程:在不改善代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。本质上说,重构就是在代码写好之后改进它的设计。虽然我们提倡先设计而后编码,即首先得有一个良好的设计,然后才能开始编码,这是我们也要坚持的精神态度,但也许设计时没能面面俱到,重构能帮助我们改善既有设计,提高代码质量。

为何重构

1.重构改进软件设计

  重构就是在整理代码,使所有东西回到应处的位置上,一是保证了代码结构的维持自己该有的形态。代码结构的流失是累积性的,因此可能会越来越难通过阅读源码而理解原来的设计,越难看出代码所代表的的设计意图,经常性的重构能帮助代码维持自己该有的形态。。二是消除重复代码,确定所有事物和行为在代码中只表述一次,这正是优秀设计的根本。代码量的减少将使未来坑你你的程序修改更容易进行,否则代码越多,正确的修改就越困难。

2.重构使程序更容易理解

  一开始,我们的代码可以正常运行,但结构可能不够理想,通过重构,可以让代码更好地表达自己的用途,此外作者还提出另一种可理解性:利用重构来协助理解不熟悉的代码。

3.重构帮助找到bug

  通过对代码进行重构,深入理解代码的行为,搞清楚程序结构,同时也印证自己所做的一些假设,于是可能会揪出未发现bug,从而更有效地写出强健的代码。

4.重构提高编程速度

  良好设计时维持软件开发速度的根本,重构可以帮助更快速地开发软件,因为它阻止系统腐败变质,它甚至还可以提高设计质量。

何时重构

  作者说:重构本来就不是一件应该特别拨出时间作废事情,重构应该随时随地进行,不应该为重构为重构,你之所以重构,是因为你想做别的事情,而重构可以帮助你把那些事情做好。
1)三次法则:第三次再做类似的事,你就应该重构
2)添加功能时重构:帮助更好的添加新特性
3)修补错误时重构:代码还不够清晰,没能一眼看出bug
4)复审代码时重构

重构与设计

  重构肩负一项特殊使命:它和设计彼此互补。做预先设计时,不必一定找到正确的解决方案,只需要找到一个足够合理的解决方案,在实现中加深对问题的理解,可能会发现当前设计不是最佳,那么通过重构,可以减少日后改进设计所需的成本。

重构与性能

  重构可能会使软件变慢,但它使优化阶段的软件性能调整更容易。

代码坏味道的特征

  • 重复代码
  • 过长函数:方法体太长
  • 过大的类:单个类做了太多事情
  • 过长的参数列
  • 令人迷惑的临时变量
  • 过多的注释
  • 等等

感想总结

  读完这本书,真有醍醐灌顶的感觉。这本书的核心是一系列完整的重构方法,其中每一项都介绍一种经过实践检验的代码变换手法的动机和技术。众所周知,重构具有风险,因此测试是重构中非常重要的角色,这本书也多次强调一次一小步地修改代码,编译测试,以减少过程中的风险。
  这本书简洁明了的介绍了不同情况下的重构手法,我觉得更重要的是如下摘录的一个读者评论所说的:“这本书本质上是向我们推荐了一种优秀的编程习惯和编程态度。在领会本书思想的同时,我们也应该培养精益求精的工作态度,探索一条更适合自己的重构道路”。
  不断追求代码的简洁与优雅,再次自勉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值