哪些需要重构?
来源:互联网 发布:然足下卜之鬼乎的句式 编辑:程序博客网 时间:2024/04/26 07:27
近期再度《重构》,有感而记:
Bad smells in Code(不好的代码):
1.Duplicated Code(重复的代码),同一份代码出现在一次以上;
2.Long Method(过长代码),一个函数太长,功能包罗万象;
3.Large Class(过大类),一个类的功能太多,导致有很多的实例变量;
4.Long ParameterList(过长参数列遇到多种变化,都是在某个类中做出变化;
6.Shotgun Surgery(霰xion弹式变化),和5刚好相反,遇到某种变化,都必须在许多不同的类内做出许多变化;
7.Feature Envy(依恋情节)某个类中的某个函数提供功能依赖的数据,依赖的方法都来自另一个类
8.Data Clumps(数据泥团),好几个数据项总是一起出现在很多地方,可以将这几个数据项提炼到一个独立的对象中;
9.Primitive Obsession(基本型别偏执),喜欢使用基本类型数据,而不用自定义类型,如:函数形参有好多个基本类型数据时,可以把这几个基本类型数据组合为一个自定义数据类型;
10.Switch Statement(switch语句),面向对象编程的一个最明显的特征就是:少用switch或case语言,从本质上说,switch语句的问题在与重复,同样的switch语句散布于不同地方,修改一个case,就要修改很多地方;
11.Parallel Inheritance Hierarcies(平行继承体系):每当为某个class增加一个subclass,必须也为另一个class相应的增加一个subclass
12.Lazy Class(冗余类);如果某个class的所得不值其身价,它就应该消失。
13.Speculative Generality(夸夸其谈未来性);如果所有装置都会被用到,那就值得那么做;如果用不到,就不值得。用不上的装置只会当你的路,所以,搬开他吧。
14.Temporary Field(令人迷惑的暂时值域):某个类的某个instance变量仅为某种特定情势而设,这样的代码让人不易理解,因为通常认为对象在所有时候都需要他的所有变量;
15.Message Chains(过度耦合的消息链);用户想一个对象索求另一个对象,然后再向后者索求另一个对象,然后再索求另一对象……;
16.Middle Man(中间转手人),对象的基本特征之一就是封装,封装往往伴随委托,如果某个class接口有很多的函数都委托其他class,这样就是过度运用;
17.Inappropriate Intimacy(过度亲密),类与类之间过度亲密;
18.Alternative Classer with Different Interfaces(异曲同工的类),如果两个函数做同一件事,却有着不同的签名式;
19.Incomplete Library Class(不完美的程序库类)
20.Data Class(纯数据类)
21.Refused Bequest(被拒绝的遗赠),子类不想或不需要父类的函数或数据
22.Comments(过多的注释)
这些需要重构的情况,占据了多少?
汗……,可能是因为项目时间紧,很多地方都没有注意到
- 哪些需要重构?
- 哪些代码需要重构(二)
- 为何需要重构
- 如果一切需要重学,2014年应该学哪些技术?
- 如果一切需要重学,2014年应该学哪些技术?
- 如果一切需要重学,2014年应该学哪些技术?
- 转:如果一切需要重学,2014年应该学哪些技术?
- java_web需要哪些技术
- 幼儿需要哪些营养
- 程序员需要哪些技能
- 团队需要哪些培训
- log4j需要哪些maven
- 自我管理需要哪些工具
- 哪些工作需要做
- 织梦仿站需要哪些基础?
- 我们需要不断进步,工作需要不断重构
- 需要重构的代码特征
- 你是否需要购买网站重构?
- OpenCV对不同图像深度的处理
- ssh访问virtualbox中的ubuntu
- makefile 初步
- 第四章 - 字符串和格式化输入输出——printf()函数
- LPTSTR CString 相互转换
- 哪些需要重构?
- 用爱打印菱形
- 学习C++
- android工程中的R.java文件
- 仿CSDN分页代码
- AT命令
- 淘宝(taobao)HSF框架
- 查询RTM包安装位置
- html控件,html服务器控件,web服务器控件的区别