List 1 Uncle Bob
Refactoring: Improving the Design of Existing Code
https://learning.oreilly.com/library/view/refactoring-improving-the/9780134757681/toc.xhtml
| ## | Bad Smell |
|---|---|
| 1 | Mysterious Name |
| 2 | Duplicated Code |
| 3 | Long Function |
| 4 | Long Parameter List |
| 5 | Global Data |
| 6 | Mutable Data |
| 7 | Divergent Change |
| 8 | Shotgun Surgery |
| 9 | Feature Envy |
| 10 | Data Clumps |
| 11 | Primitive Obsession |
| 12 | Repeated Switches |
| 13 | Loops |
| 14 | Lazy Element |
| 15 | Speculative Generality |
| 16 | Temporary Field |
| 17 | Message Chains |
| 18 | Middle Man |
| 19 | Insider Trading |
| 20 | Large Class |
| 21 | Alternative Classes with Different Interfaces |
| 22 | Data Class |
| 23 | Refused Bequest |
| 24 | Comments |
List 2 郑烨
| ## | 代码坏味道 |
|---|---|
| 1 | 命名不规范 |
| 2 | 乱用英语 |
| 3 | 重复代码 |
| 4 | 长函数 |
| 5 | 大类 |
| 6 | 长参数列表 |
| 7 | 滥用控制语句 |
| 8 | 缺乏封装 |
| 9 | 可变的数据 |
| 10 | 变量声明与赋值分离 |
| 11 | 依赖混乱 |
| 12 | 不一致的代码 |
| 13 | 落后的代码风格 |
命名

乱用英语

重复代码

长函数

大类

长参数列表

滥用控制语句

缺乏封装

可变的数据

变量声明与赋值分离

依赖混乱

不一致的代码

落后的代码风格
