温暖的电波  

5.1 重构的记录格式
 每个重构手法都有如下五个部分:
  A、名称
  B、概要(summary) 讲述适用场景和它所做的事情;
  C、动机(motivation) 讲述为什么需要这个重构;
  D、做法(mechanics) 讲述如何进行此重构;
  E、范例(examples) 简单举例说明此重构手法如何运作。

  概要:(1)介绍这个重构能够帮助我们解决的问题;(2)简短介绍你我们应该做的事;(3)简单展现重构前后示例:有时候是代码,有时候可能是UML图。
  做法:如果你知道该使用哪个重构方法,但记不清具体步骤,可以参考“做法”;如果只是初次使用某个重构,可能只参考“做法”还不够,还需要阅读“范例”。
       作者在“做法”中的每个步骤描写的很简短,这样的重构方式更安全,并且在每个步骤后进行测试。真正工作时,作者通常会采用比“做法”中稍微大些的重构步骤,然而一旦出问题,就会立刻撤销刚才的“大步”重构,换用较小的步骤。
  范例:帮助解释重构的基本要素。大部分时候,一个范例只为一项重构设计。

5.2 寻找引用点
  A、很多重构都要求我们找到对于某个函数、某个字段或某个类的所有引用点。
  B、利用计算机工具来查找引用,更彻底更快;
  C、不要盲目的使用查找--替换,检查每个引用点,降低出错的几率;
  D、强类型语言中,可以借助编译器帮助捕捉“漏网”的引用点,直接删除旧部分,让编译器帮你找出因而被悬挂起来的引用点。
  不过这个方法有一些限制:
  首先,如果删除部分在继承体系中声明不止一次,编译器也会被迷惑,尤其是被复写的函数。所以如果在一个继承体系中,还是需要先用文本查找工具检查是否有其他类说明了你正在处理的那个函数。
  其次,编译器可能太慢。
  第三,编译器无法找到通过反射机制(什么是反射?)而得到的引用点。
  E、某些java开发环境可以采用了菜单项来查找引用点。

5.3 这些重构手法有多成熟
  重构的基本技巧“小步前进、频繁测试” 已经得到多年的实践检验,所以这些重构基础思想是非常可靠的。
  但是1,必须视自己的实际情况选择适合的重构方法。
  但是2,书中的的重构手法都是在“单进程”前提下来讲解的,用于并发和分布式程序设计的重构技术是完全不同的。
  但是3,设计模式为重构行为提供了目标,但是书中并没有提供“完成所有知名模式”的重构收发,这也反映出书中这份重构列表不够完整。
Anyway,尽管书中的重构还不够完美,但它们作为一个起点提供给我们,让我们可以不断提供自己的重构能力。

posted on 2016-05-16 18:19  温暖的电波  阅读(168)  评论(0)    收藏  举报