代码改变世界

[重构]读书笔记:代码的坏味道的迹象

2013-03-05 17:18  Max蚊子  阅读(290)  评论(0编辑  收藏  举报

1、重复代码(Duplicated Code)

  也许在同一个类中的某两个或者多个函数中有相同的表达式(即代码)--提炼一个新的方法,或者兄弟类中有实现相同功能的方法或者表达式--提炼新的方法并提到适当父类,再有模板方法也是哦,还有其他的迹象,唯一不变的就是看上去实现的相同或者相似的功能。

2、过长的函数(Long Method)

  当你一个方法动辄两三百行或者五六百行,这里面一定有可以重构的地方,一定是在一个方法里面做了N多件事情,你能够把这样的一个方法拆分为多个新的小的函数,不行你可以回顾自己写个的code。

3、过大的类(Large Class)

  类太庞大,说明干的事儿就多,那这么多事儿当中是否能够提炼出新的类,就像现实当中一样,事情还得交给专业的人干才会不出差错,也许一个人啥都会一点但都不会精通,一旦深入还得找专业人士。

4、太长的参数列表(Long Parameter)

  如果一个方法传入的参数有那么七八个以上,你是否会感觉头晕目眩然后想丢下不管 了。这时你可以用参数对象、以函数取代参数、保持对象完整性来减少传入的参数个数,这样一来就会简洁很多,而且传的参数多也行干的事儿就多,也行能够拆分为更多的方法也说不定。

5、发散式变化(Divergent Change)

  一个类引发多种变化影响。

6、Shotgun Surgery

  一种变化引发多个类相应修改。

7、依恋情节(Feature Envy)

  函数对某个类的兴趣高过对自己所处类的兴趣。

8、数据泥团(Data Clumps)

  两个雷中相同字段、许多函数签名中相同的参数。

9、基本类型偏执(Primitive Obsession)

  

10、Switch Statements(Switch 惊悚现身)

  大多数时候,一看到switch语句,就应该考虑以多态来替换它(单一函数中有些选择视力除外)。

11、平行继承体系(Parallel Inheritance Hierarchies)

  Shotgun Surgery的特殊情况。当你为某个类添加一个子类也必须为另一个类添加一个子类,如果你发现某个继承体系的类名称前缀或者后缀和另外iyige继承体系的类名称前缀或者后缀完全相同。

12、冗赘类(Lazy Class)

  如果一个类的所得不值其身价,它就应该消失。

 13、想多了(Speculative Generality)

  事先向的太多,最后确没用到这么多。没用到就应该拿掉。该删掉删,该改名的改名。

14、令人迷惑的临时字段(Temporary Field)

  某个实例变量仅为某种特殊情况而设--提炼一个新类。

15、过度耦合的消息链(Message Chains)

 

16、中间人(Middle Man)

  

17、Inappropriate Intimacy

 

18、异曲同工类(Alternative Classes with Different Interface)

 

19、不完美库类(InComplete Library Class)

 

20、纯稚的数据类(Data Class)

 

21、被拒绝的遗赠(Refused Bequest)

 

22、过多的注释(Comments)

  用注释来解释代码糟糕的代码,或者没有更新注释。

网站:feiger.cn         飞鸽博客,关注互联网、站长圈的程序员博客!