重构是需要慎重考虑的,不是拍脑子决定的事情!
一、引言
程序员都有一颗工程师的心,所以当他们到一片新的场地想做的第一件事就是,将旧的一切推倒重来。是的,他们觉得旧代码异常混乱,因为读代码更难,宁愿丢掉旧代码重新写,也不愿意修修补补,他们认为旧代码简直一团糟。
我觉得这个出发点是好的,但我观察了非常多的案子,那些重构的项目大多数是失败的,相当一部份都成了烂尾。他们从头开始再写一遍并不意味着会写出比以前更好的代码,因为不少人没有参与到上一个版本的创建,所以其实根本不算有经验。一旦推倒重写,可能会再犯一遍版本一犯过的错,甚至会产生更多的新问题。
二、我们的项目是否需要重构?
对处于团队 Leader的我来说,重构考虑的是人力、时间、项目风险等因素,在商业项目中,推倒重来是非常危险的行为,重写项目的代码也是一个异常艰难的决定。当然,如果只是在做实验,想到新算法、SDK可以随时重写。
经过慎之又慎的考虑,重构也不是不可以的,但不是一下子推翻项目之前的所有代码,否定一切,你可能不一定会写出比以前更好的代码。结合自已的工作经验(移动端开发经验),重构主要工作从以下几个方面展开:
-
删除没用到的第三方库
-
删除不合理的第三方库,使用系统自带的或者自己造轮子
-
删除定义好但是没有用到的变量
-
删除 import 进来但是没有用到的头文件
-
删除更旧项目留下来的用不到的逻辑
-
代码的结构重构,项目工程、View、Service等层级不合理
-
代码的效率不高的重构,循环、编译速度优化
-
代码写得很丑的重构,命名不合理
-
内存泄露的重构
-
消除项目中的 warning