系统的重构/The refactoring of system

作者:吴璞渊

Q&A

1、在日常工作中重构,会不会增加开发时间? 不会,即使增加也不会增加太多;只要运用合适的步骤对已有的方法分解、理解,一般都是比新写方法来的更快。因为重新写一遍实现,主体思路即使清楚,但是细节是不会全想到的,而很多细节的实现在已有代码里是现成的。

2、现有代码已经很混乱,也打算开始重构,需要做什么准备? 一般代码混乱,是由于业务场景、数据模型混乱开始的,应实现把这些重新设计好,再对代码重构。代码是为了实现这些而存在的,所以在代码重构前,有必要先理清楚业务场景和数据模型。

3、需要对code review做规范吗? 我也没确切的结论,只是以我的经验来看,不同人的侧重点不同,功能实现有很多方式,很难确定那一种更”好”,所以做到统一的规范太难。其二,规则定的太多,对于开发来说也是个负担。

4、对系统整体重构一次多长时间? 给个参考时间吧,对于每周发布一次的频率来看,”热度”高的代码重构完一般是4个月左右。

5、真的可以不需要测试吗? 测试的工作还是必不可少的,只是换了个方式和一个执行测试的人。加强单元测试是减少风险的手段之一,但是单元测试也不一定能解决所有问题,只是相对的。如果重构做完后,对现有的结构有了明确的划分,可以把系统做成配置化发布的形式,这样测试的工作就会大大减少了。

Written on May 24, 2015