[size=18]引言[/size]
最近杂七杂八地思考了不少东西。但是很惊异地发现这三三两两的杂思竟然彼此互相联系。隐隐地道出了一个共同的主题。这个主题就是重构。修饰词是被动的。
主动重构就是我们所熟悉的重构。比如说在Eclipse中按下Shift+Alt+R,出现一个对话框提示你输入新的名字,然后Eclipse把要改名的类或者方法本身改名,以及所有对这个名字的引用都改成新的。那么什么是被动重构呢?
所谓被动重构就是你不直接告诉你所使用的工具,你要做重构。相反,是由工具来检测到你做了什么改动。其余的都基本一样。比如就上面这个例子,如果用被动重构来做的话,就是在改名之前check一次,然后你来改名字,改完之后再check一次。分析两次check的结果,就能够知道你改动了什么,然后再由工具把这个改动给传播到其余的部分。
被动?这不是更麻烦了么?非也。且看我举三个例子罢。
[size=18]例子一:PowerPoint Prototype 重构[/size]
(待续)
[size=18]例子二:类定义带动数据库表结构重构[/size]
(待续)
[size=18]例子三:测试脚本的重构[/size]
(待续)
[size=18]推论[/size]
(待续)
最近杂七杂八地思考了不少东西。但是很惊异地发现这三三两两的杂思竟然彼此互相联系。隐隐地道出了一个共同的主题。这个主题就是重构。修饰词是被动的。
主动重构就是我们所熟悉的重构。比如说在Eclipse中按下Shift+Alt+R,出现一个对话框提示你输入新的名字,然后Eclipse把要改名的类或者方法本身改名,以及所有对这个名字的引用都改成新的。那么什么是被动重构呢?
所谓被动重构就是你不直接告诉你所使用的工具,你要做重构。相反,是由工具来检测到你做了什么改动。其余的都基本一样。比如就上面这个例子,如果用被动重构来做的话,就是在改名之前check一次,然后你来改名字,改完之后再check一次。分析两次check的结果,就能够知道你改动了什么,然后再由工具把这个改动给传播到其余的部分。
被动?这不是更麻烦了么?非也。且看我举三个例子罢。
[size=18]例子一:PowerPoint Prototype 重构[/size]
(待续)
[size=18]例子二:类定义带动数据库表结构重构[/size]
(待续)
[size=18]例子三:测试脚本的重构[/size]
(待续)
[size=18]推论[/size]
(待续)