酷壳曾在http://coolshell.cn/articles/5201.html中对重构采用了保守的观点。这点很赞同。可以重构代码,需要满足的条件:
1. 谁可以重构代码
项目中,代码的重构人员最好是代码的原班人马,否则需要重构人员非常清楚项目原有的实现结构;并在重构前写好单元测试。
2. 单元测试
代码重构后,必须充分做单元测试(使用项目原有的单元测试用例,在需要时,补充单元测试用例)
3. 代码的原班人马来review 重构后的代码
最清楚代码实现结构的人员莫过于原有的开发人员了。所以重构完成上线前,一定请代码的原班人马来review代码。
4. 使用sonar等工具来判断代码规范
使用sonar,checkstyle等工具来检查重构后代码,并对比之前的代码,要求重构后的代码规范问题不得多于重构前的规范问题。
5. QA的正式介入测试
既然重构人员最好是原有的开发人员,那么QA也最好是原来的测试团队。否则就需要根据重构前的测试case 来测试啦。
测试过程,需要注意以下几点(必要时,重新补充case):
1) 多线程问题。 重构时,确认机器内存,线程池是否满等问题。避免重构新引入代码多线程问题。
2)对原有实现的保证。必须严格执行重构前的case,来保证重构不破坏项目的功能。
3)对下游项目的影响确认。确认重构后,不会影响下游系统。