代码中的坏味道:
Duplicated Code 重复代码 (应该提取)
Long method 过长函数 (分模块)
Large Class 过大的类 (一个类做太多的事情容易产生这样的问题)
Long Parameter List 过长参数列 (参数要精简)
Divergent Change 发散式变化?
Shotgun Surgery 霰弹式修改 (一个变化在很多地方都要进行修改)
Feature Envy 依恋情结 (函数对某个类的的兴趣高过对自己所处类的兴趣)
Data Clumps 数据泥团 (不同类有重复字段或者不同函数有重复参数)
Primitive Obsession 基本类型偏执 (应该善于运用基本类型组成的小对象)
Switch Statements switch惊悚现身 (用多态重构)
Parallel Inheritance Hierarchies 平行继承体系
Lazy Class 冗赘类
Speculative Generality 夸夸其谈未来性 (例如增加公共不必要也没使用的的参数)
Temporary Field 令人迷惑的暂时字段 (较多字段仅仅用于某一个算法)
Message Chains 过度耦合的消息链 (例如反复的getThis())
Middle Man 中间人
Inappropriate Intimacy 狎昵关系
Alternative Classes with Different Interfaces 异曲同工的类
Incomplete Library Class 不完美的库类
Data Class 纯稚的数据类
Refused Bequest 被拒绝的馈赠
Comments 过多的注释 (代码即注释)