标签:
开发者可能听到过"bad smell"这个词,这个词用在软件编码中是什么意思呢? 代码还有smell吗?当然没有,正如计算机病毒,bug等词一样,这仅仅是个形象的说法。这个词在这里的意思是代码实现了需求,可是代码却不精炼,冗余,结构混乱,难读懂,难维护,难扩展等等。与之相相应的一个词是"refactor",即代码重构。我们在看些外国人写的程序时能够发现,他们的代码里通常会定义大量的类、接口、方法,类与类,类与接口之间非常多是继承和实现的关系,方法的代码行数非常少,超过20行代码的方法不多,看他们的代码感觉最多的就是方法之间的调来调去,不像我们的代码,一个方法下来几十上百甚至两三百行都是最主要的语句构成,非常少调用自己的方法。两相比較,能够看出,前者在结构上更清晰,通过类视图就可看出设计意图,而且总的代码量不会高于后者,而后者代码量庞大,代码冗余现象严重,结构不清晰,非常难维护,如要改动某个错误,可能涉及到要改动的代码点非常多,这样后来的维护者就非常头疼了。造成这样的状况的原因有这样一些:
1.经验不足,分析设计不到位
2.敏捷开发,尽管经验非常多,但为了高速开发,没有经过分析设计
3.缺乏意识,仅仅为实现功能而写代码,无论代码质量
对于这种代码,我们如何将其变得更为精炼和易于维护呢?这就是代码重构。重构不是针对功能,纯粹是对代码本身。重构后的代码不会影响到系统的执行。
我们来看看能够在哪些方面对代码进行重构:
1.重命名:对类,接口,方法,属性等重命名,以使得更易理解
2.抽代替码:将方法内的一段代码抽取为还有一个方法,以使得该段代码能够被其它方法调用,这是重构中非常重要非经常常使用的,此举能够极大的精炼代码,降低方法的代码行数
3.封装字段:将类的某个字段转换成属性,能够更加合理的控制字段的訪问
4.抽取接口:将类的某些属性,方法抽取组成个接口,该类自己主动实现该接口
5.提升方法内的局部变量为方法的參数:这主要是在写代码的过程中会使用到
6.删除參数:将方法的一个或多个參数删掉
7.重排參数:将方法的參数顺序又一次排列
实际应用中,用的最多的是1、2、3,我们能够在写代码的时候有意识的运用代码重构,这样当我们完毕编码时代码的质量也能得到保证。
标签:
原文地址:http://www.cnblogs.com/gcczhongduan/p/4510435.html