读《重构-改善既有代码的设计》第三章:代码的坏味道

1、Duplicated Code (重复代码)

2、Long Method(过长函数)

  • 分解函数: 每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中。并以其用途(非其实现手法)命名。
  • 函数的长度: 在于函数 “做什么” 和 “如何做” 之间的语义距离。

Tips:当代码前有一行注释,就是在提醒你:可以将这段代码替换成一个函数!

3、Large Class(过大的类)

4、Long Parameter(过长参数列)

5、Divergent Change(发散式变化)

指一个类受多种变化的影响

-通过运用 Extract Class(提炼类) 使其每个对象只受一个变化影响

6、Shotgun Surgery (散弹式修改)

指一种变化引发多个类相应的修改

7、Feature Envy(依恋情结)

指函数对某个类的兴趣高过对自己所处类的兴趣
  • 原则:判断哪个类拥有最多被此函数使用的数据,然后就把这个函数通过移动函数和那些数据摆在一起。如果函数中只有一部分,应该运用提炼函数把这一部分提炼出去。

8、Data Clumps(数据泥团)

  • 减少字段和参数的个数,提炼新对象。

9、Primitive Obsession(基本类型偏执)

  • 数据对象化
  • 小任务运用小对象

10、Switch Statement (switch 惊悚现身)

  • 尽量少用Switch,尽量以多态替换Switch

15、Message Chains (过度耦合的消息连)

从一个对象请求另一个对象,然后再通过后者请求另一个对象。。。

22、Comments (过多的注释)

当你感觉二需要写注释的时候,请先尝试重构,试着让所有的注释都变的多余。

PS:部分省略

上一章:读《重构-改善既有代码的设计》第二章:重构原则
下一章:读《重构-改善既有代码的设计》第四章:构筑测试体系

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值