zoukankan      html  css  js  c++  java
  • [重构]读书笔记:代码的坏味道的迹象

    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)

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

    ※如果你觉得这篇文章不错,请点击推荐。如果你觉得我写的对你有用请关注我。
    作者:Max蚊子
    网站:feiger.cn         飞鸽博客,关注互联网、站长圈的程序员博客!
                 
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    验证字符串空“” 的表达式
    should not this be a private conversation
    【转】你真的了解word-wrap 和 word-break 的区别吗
    To live is to function,that is all there is in living
    [转] windows 上用程序putty使用 ssh自动登录Linux(Ubuntu)
    Vim/gvim容易忘记的快捷键
    [转] Gvim for windows中块选择的方法
    问题集
    web services
    Trouble Shooting
  • 原文地址:https://www.cnblogs.com/kim01/p/2944593.html
Copyright © 2011-2022 走看看