最近花了一周的时间终于完成了,city的商城和仓库的重构,可是在今天下午听了tardis讲述了一篇代码异味的文章后,反思自己重构的重构,我感到毛骨悚然了,这他妈的是重构吗,让我认识到自己重构的力度的不足,从网上找到了那篇文章决定好好品读一下,在此写下记录,希望对别的有同样需求的朋友有帮助。
1.任何一个傻瓜都能写出计算机可以理解的程序,只有写出人类容易理解的程序才是优秀的程序员 – Martin Fowler
我们在写代码的时候,常常忽略了代码的可读性,可能只是为了一时之便在代码的基础上自以为巧妙的一改便实现了产品的需求,可是要知道这样的代码给后面的人埋下了隐患。因为这样的代码很可能导致别人也可能是自己的误读。
2.Refactoring是对软件内部结构的一种调整,目的是在不改变外部行为的前提下,提高其可理解性,降低其修改成本。
3.常见的代码异味有:
- 重复的代码(Duplicated Code)
- 过长的函数(Long Method)
- 过大类(Large Class)
- 过长的参数列(Long Parameter List)
- 发散式变化(Divergent Change)
- 霰弹式修改(Shotgun Surgery)
- 依恋情结(Feature Envy)
- 数据泥团(Data Clumps)
- 基本型别偏执(Primitive Obsession)
- Switch语句(Swtich Statements)
- 平行继承体系(Parallel Inheritance Hierarchies)
- 冗赘类(Lazy Class)
- 夸夸其谈未来性(Speculative Generality)
- 令人迷惑的暂时值域(Temporary Field)
- 过度遇合的消息链(Message Chains)
- 中间转手人(Middle Man)
- 狎昵关系(Inappropriate Intimacy)
- 异曲同工的类(Alternative Classes with Different Interfaces)
- 不完善的程序库类(Incomplete Library Class)
- 纯粹的数据类(Data Class)
- 被拒绝的遗赠(Refused Bequest)
- 过多的注释(Comments)
重构的一个目的的让代码简单清晰,解耦,解耦,再解耦。文档中给出了一些的方法,这里不再赘述,喜欢的可以自己去看下这里给出链接
http://wenku.baidu.com/view/d82431e84afe04a1b071de68.html