最近一段时间在做2个模块代码的refactor。一个模块是因为性能的原因,另一个模块是因为很烂的数据库设计,导致数据很难维护,并且也会有潜在的性能问题。
有很多的感想:
1. 既然要做refactor,就意味原来的代码肯定有很大的缺陷。但是即使这样,也要先明确refactor的范围。而不是全部上来都做refactor,那样会导致refactor不可控。同时还要区分哪些是refactor,哪些是new feature,不要混在一起。
2. test case很重要。
3. 详细的文档比代码实现更重要。时间上应该是1:1
4. 文档应包括:
A 对旧系统业务逻辑的分析,以及存在的问题
B 新系统业务逻辑的分析,对应的改善方法
C new design:DB, architecture
D 旧有系统需要改善的功能点
5. 再烂的系统也不是一无是处,所以尽量不要全盘否定。