refactoring 应用的场合
【相关文章:C#中如何对当前窗体进行打印预览】增加功能 【扩展阅读:.NET – 深入系统编程 - Part】
另一个原因是原来代码的结构很难直接扩展,可能是因为一个类与另外一个类的绑定太紧,或者是他使用了大量的case语句,或者是有一些重复的代码让你觉得加入你的代码会使结构更差。总而言之,直接加入新功能不是太方便。这时候,你就需要refactoring,使得旧的代码在能让旧的test case通过的情况下,让新的代码加入更加方便、快捷。 【扩展信息:在你的服务器端代码中使用线程和创建异步处】
如果你的代码不需要增加新的功能,那么你几乎没有必要对他进行refactoring。增加功能是进行refactoring最常见的起因。通常,refactoring的第一个目标就是为了让代码更容易理解。refactoring不仅仅可以使难以理解的代码更加清晰,他也可以使你对它的理解呈现一种交互状态,你与代码的交互。理解了,新的功能就很容易加入。重用
重用可以说是增加功能的一个特例。因为这是oo增加功能最主要的方法。但这里有一些差别。如果你的代码是一个框架,那么当把代码交给其他人使用时,你必须重点考虑框架的重用方法。譬如,你想在框架之上增加一层facade,这时候,你可能需要refactoring一些内部类,让这个facade的结构更容易加入。
对框架refactoring可能需要是一个反馈的过程。因为框架一旦稳定就可能长期存在,一般你不会直接对这个框架增加功能。这时,不同应用程序对框架使用经验的积累可能使得你的refactoring具有更加明确的目标,更加深层次的抽象。
修正bug
bug产生的原因有很多。可能是你对解决的问题理解不够,也可能是程序的代码过于纷乱。当你的代码结构不是很清晰时,bug往往隐藏在代码之中,使你很难发现。应用refactoring让代码结构结构更清晰的同时,也使得bug自动浮出水面。refactoring所追求的目标与过程往往使得代码的bug无处遁形。eric e. allen在ibm中developerworks的bug pattern中的一个模式就是copy-and-paste方法造成代码重复,从而产生bug的一个例子。这个 rogue title pattern是一个非常常见的bug例子,当你修正了程序中一个bug时,你发现程序运行的结果是你明明已经修正的bug还在作怪。究其原因,就是程序员在实现一个功能的时候把一段代码复制过去,稍加修改,就成为一个新的函数。你修改了一个地方,但却忘了另外一个地方。
refactoring力求排除重复代码,如果有这样的bug,在refactoring以后,一次修改就能纠正所有的问题。
code review
review可以使得专家知识传播到整个开发队伍。他们能够帮助更多的人理解一个大系统更多方面的问题。它们对于编写清晰的代码也有很好的帮助。俗话说得好,三个臭皮匠顶一个诸葛亮,review也使得你能够接受更多其他人的好意见与想法,从而使你的设计与代码更加合理。... 下一页