首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

代码技巧之重构

2013-09-28 
代码技能之重构在软件工程中,建立完美的需求与设计,按照既有的规范编写标准统一的代码。但是这只是个美好的

代码技能之重构

在软件工程中,建立完美的需求与设计,按照既有的规范编写标准统一的代码。
但是这只是个美好的愿望。

需求会改变,设计也会改变,程序员写出的代码也需要改变。修改代码不紧紧是为了完成
业务功能,还需要考虑其他的一些问题,比如以后对该代码维护是否容易。
这里代码是否容易维护包括:
1.代码维护者是否能很容易读懂你的代码。
2.代码维护者是否能够很方便修改你的代码。
      
当你担负着额外的责任来修改代码时,有一个很光鲜的名字来表示它,就是:重构。

重构代码,既是一个程序员的责任,也是一个可能发现bug的方式,甚至还能提高编程速
度。总之有很多好处。

代码重构之后,可能会给软件项目带来bug,或者程序运行性能降低,或者过多的重构延
误了项目的交付日期。总之也有很多坏处。

现在说到这里看似碰到了很多问题。我们知道问题肯定不仅仅是上面这些!!
有关重构的问题国外有牛人研究过(还包括学术方面的研究哦),并且给出了一些具体的
解决问题的措施和建议。如果有同学想了解些重构方面的东西的话,可以考虑买本Martin
Fowler的《Refactoring Improving the Design of Existing Code》了解下。这本书中
文译本翻译的也不错。
我最近正在读这本书。感觉很不错!!!
---------------------------------------
代码有那些重构手法呢?
重新组织函数部分:
1.Extract Method
2.Inline   Method
3.Inline   Temp
4.Replace Temp with Query
5.Introduce Explaining Variable
6.Split  Temporary Variable
7.Remove Assignments Parameters
8.Replace Method with Method Object
9.Substitue  Algorithm
简化条件表达式:
1.Decompose Conditional
2.Consolidate Conditional Expression
3.Consolidate Duplicate Conditional Fragments
4.Remove Control Flag
5.Replace Nested Conditional with Guard Clause
6.Replace Conditional with Polymorphism
7.Introduce Null Ojbect
   这个东西有点高深,正在理解。
8.Introduce Assertion

上面这两种类型的重构,我觉得最实用。在最近的项目中,我试图在运用这些东西。
目标一:
代码要写的漂亮,写尽量少的注释,读代码本身就像读注释一样。

简化函数调用:
1.Rename Method
2.Add Parameter
3.Remove Parameter
4.Parameterize Method
5.Replace Parameter with Explicit Methods
6.Preserve Whole Object
7.Replace Parameter with Methods
8.separate Query from Modifier
9.Introduce Parameter Object
10.Remove Setting Method
11.Hide Method
12.Replace Constructor with Factory Method
13.Encapsulate Downcast
14.Replace error code with Exception
15.Replace Exception with Test

在程序中总能看到不同的人有不同的编程特点。有些程序很明显是可以通过上面的一些
手法来重构的,但是就是不去这么做,宁愿写重复代码,宁愿干自己都觉得不合理的事
情。因为在项目中,怕承担风险是人趋利避害的一个本性。所以这种想法是代码越来越
丑陋的一个很大因素。








TODO

热点排行