重构这个话题是老生常谈的了,无论对于C、java亦或Python程序员来讲,只要项目有一定的代码量,重构就是无可避免的。正好这段时间我正在给一个android应用项目(下文统称项目X)做重构,这个项目原本是由一个完全不会写代码的人写的,可以说项目没有任何可读性,逻辑也没有很清晰。本文我会结合自己的实践和一些参考资料谈谈我对重构的一些理解。
什么是重构?
重构是在保证不改变外部行为的前提下,对内部结构进行改变,使之易于修改和理解。
——————Martin Fowler
换句话说,重构就是保证我们的程序对于外部使用者来说是一致的,但是内部的代码做了优化。
为什么要重构?
这个问题其实很简单,就是代码写的不好。当然了,代码写的不好也是不可避免的,再nb的程序员写出来的再nb的项目也会有可优化的地方,Linus Torvalds写的项目会不会一点问题都没有?不会。有时候可能一个变量含义不清,一个函数的功能不明确,类定义有部分耦合,Linus Torvalds不是神,这些或大或小的问题总会出现的。
需要重构的情况和解决方法?
下面就简单说说那些情况下我们就需要重构代码了,你也可以对照着这些情况重新审查自己的代码是不是有类似问题。
违反了基本的代码规范
基本的代码规范包括但是不限于如下:
命名采用驼峰式,命名是有意义的,而非类似temp、data之类,private和protected命名前加m,静态变量加s,静态常量全部大写等等,这里不过多写了
魔鬼数字,将魔鬼数字定义为静态常量,并给他详细的注释,这个习惯一定要保持