闲来无事,那就再来一篇。
上一篇重构<1> – 好好的项目,为什么我要一遍遍重写中,深刻的探讨了我们为什么需要重构,那这篇,就讲讲重构的几个大方向。
部分老生常谈的咱就心照不宣啊。。。
1、重复代码
2、过长函数
3、过大的类
一两句讲不清楚,我画图吧。
像这样,子功能C因为只被主功能A使用,所以不用从A中独立出来。因为一个类独立与否无伤大雅,但是,集腋成裘,当多个类类嵌套调用的时候,子又生孙,孙又生子,子子孙孙,卡给你死。
那个子功能D、E,因为是公共功能,那就独立出来。
4、过长的参数列
以前说函数的调用会消耗资源,现在没那么麻烦,那点资源还是耗得起的,不过这参数列一长,看着就烦。像那个哈希散列表(C 版),那些参数到现在我还不知道怎么填上,编译就是过不了。
5、发散式变化,霰弹式修改
6、脚踏n条船的函数
有的函数啊,它要用上好几个类的对象,这种函数放在那个类里面就需要三思。一般放在权重大的类里面,或者通过对类的重构,让一些类变成另一些函数的儿子。
7、内存管理
对于内存管理,我有话说:智能指针了解一下。
8、多余的注释
有些注释的存在,仅仅是因为代码很糟糕。这个自己评判咯。