代码重构之灾

做过很多的项目,最终你会发现其代码质量是非常有问题的。项目的外包制度、不断基于老的代码上做二次开发并高呼“不要重复造轮子”、开发人员的能运行就可以的态度等等不断将项目的代码拖进无底洞,项目的代码急剧扩大,问题却也爆炸性的增长。最近做的项目就是基于老的项目上做新的项目,其中问题很多。

问题分析如下:

总体项目的设计是公共基础+应用部分的功能。应用部分的功能是互不干扰的数据流,不做每个应用的过程相似程度很高。不过现在的代码是各个数据流写自己的步骤,甚至是每个功能如果超过两个人开发,可能会出现对同一张表进行两次相同的查询操作。每个功能对应的审批流程也是类似的这种情况。现有代码里有大量可以标注为unused的方法。这是一种非常糟糕的情况,而且这份项目代码会被多次的重用。

重构的改进意见:

1.根据实际情况和设计模式当中的模板模式,将高度类似的应用功能部分用模板模式重构,将变动部分抽离封装

2.每个数据流的工作由具体的单人负责,避免多人在处理同一个功能的时候信息同步问题

3.统计每个功能对数据库表的操作,包括表,操作,字段等等,尽量将冗余表操作去除

4.对多个流程中相同的表操作进行公共化处理

5.去除掉代码里大量的冗余代码

重构一个项目代码的具体操作过程:

1.整理项目的常量类,查询每个常量类的常量是否被调用过,如果没有删除常量。

2.在项目代码中搜索"*",查找出所有java文件中的常量字符串,看看是否需要将其设置为常量,挪到向量类里面去

3.清除掉没有被调用的方法,或者标注为unused。

4.将已有代码里的公共代码片段抽离为方法,根据实际情况将重构的方法迁移到公共方法类里

5.清楚业务,理解业务流程,在数据流方面查看重构的需要(应用功能级别的重构)

6.针对项目的使用情况,进行结构设计方面的重构(项目级别的重构)

重构对操作人员的基本要求:

1.重构的各种操作熟练

2.设计模式熟练

3.仔细阅读过大量的代码,一般都是别人的代码

4.在没有业务文档支撑的情况下可以从代码中提取业务功能的信息

5.理解JVM内存模型,知道代码在JVM中的运行机制和效率


Note:不建议基本要求不满足的情况下强行重构

猜你喜欢

转载自blog.csdn.net/seacean2000/article/details/78150058