代码的坏味道
代码的坏味道列表:
- 神秘的命名:代码不是直观明了的,命名无法表明自己的功能和用法
- 重复的代码:在一处以上的地方看到相同的代码结构
- 过长的函数:积极的分解函数,当感觉需要以注释来说明点什么的时候,把需要说明的东西写进一个独立的函数中,并以其用途命名
- 过长的参数列表
- 全局数据
- 可变数据:约束对数据的更新,降低风险
- 发散式变化:杂糅了不同上下文的模块因为不同的原因在不同的方向上发生变化,对某个上下文进行修改时,需要操心对另一个上下文的影响。
- 霰弹式修改:遇到某种变化,需要在不同的地方做出小的修改
- 依恋情结:一个函数与另一个模块中的函数或数据交流格外频繁,远胜于自身所处模块内部的交流。
- 数据泥团:不同地方出现的三四项相同的字段,例如两个类中相同的字段,许多函数签名中相同的参数,将它们提炼到独立的对象中。
- 基本类型偏执:不愿意创建对自己问题域有用的基本类型,如钱、坐标、范围等。
- 重复的 switch:在不同的地方反复使用同样的 switch 逻辑
- 循环语句:使用 Map Reduce Filter来替代循环
- 冗余元素
- 夸夸其谈通用性:总有一天需要做这事,企图以各种各样的钩子和特殊情况来处理一些非必要的事情
- 临时字段:某些为了特定情况而设置的字段
- 过长的消息链
- 中间人:过度运用委托
- 内幕交易:模块间大量交换数据, 减少模块间的数据交换,并将交换放到明面上
- 过大的类:单个类做太多的事情
- 异曲同工的类:相似的类却无法替换
- 纯数据类
- 被拒绝的遗赠:复用超类的实现,但又不愿意支持超类的接口
- 注释:一段长长的注释,因为糟糕的代码而存在
代码的坏味道
https://blog.zhangliangliang.cc/post/bad-smell-of-code.html