代码坏味道之霰弹式修改 (Shotgun Surgery)

定义 霰弹式修改指的是:如果每遇到某种变化,你都必须在许多不同的类内做出许多小修改。 影响 需要修改的代码散布四处,你不但很难找到它们,也很容易错...

周三 · 2024-10-02 · 5 分钟 · Yuechen

代码坏味道之发散式变化 (Divergent Change)

定义 某个模块经常因为不同的原因在不同的方向上发生变化 影响 通常,发散式变化是由于多个变化方向之间有较多的来回调用或者函数内部混合了多类处理逻辑...

周三 · 2024-09-25 · 4 分钟 · Yuechen

代码坏味道之可变数据 (Mutable Data)

定义 对数据的修改经常导致出乎意料的结果和难以发现的Bug 影响 影响可维护性,在一处修改数据,却在另一处造成难以发现的破坏 改进目标 应用“数据不可...

周六 · 2024-09-21 · 3 分钟 · Yuechen

代码坏味道之全局数据 (Global Data)

定义 类变量和单例等可以在代码库的任何一个角落修改的数据 影响 可以在任何位置进行修改,在使用过程中可能出现意想不到的值,并且没有任何机制可以探测...

周五 · 2024-09-20 · 3 分钟 · Yuechen

代码坏味道之过长参数列表 (Long Parameter List)

定义 方法的入参过多,或存在不必要的参数 影响 方法不易被理解、使用,方法签名容易不稳定,不易维护 改进目标 去除多余参数,合并部分参数,提升方法签名...

周四 · 2024-09-19 · 2 分钟 · Yuechen

代码坏味道之过长函数 (Long Function)

定义 一个函数包含了过多的逻辑功能或过分体现逻辑功能的实现细节,导致函数产生过长的代码块 影响 过长函数往往意味着函数功能不单一或过分呈现细节未进...

周三 · 2024-09-18 · 5 分钟 · Yuechen

代码坏味道之重复代码 (Duplicated Code)

定义 在一个以上的地点看到相同或相似的代码结构 影响 想要修改其中一段代码逻辑需要修改多次 易遗漏, 难维护 改进目标 消除重复,提升可维护性的目标 方法 提...

周二 · 2024-09-17 · 3 分钟 · Yuechen

代码坏味道之神秘命名 (Mysterious Name)

定义 在阅读代码时,一些会影响我们的阅读体验的神秘文字(不知其意的命名) 影响 未来在“猜谜”上可能浪费大把时间,影响可读性 如果代码难以命名,其背...

周一 · 2024-09-16 · 3 分钟 · Yuechen