基本原则:
- 现有业务逻辑、依赖与关联分析清楚
- 对于一些不合理的业务逻辑要从技术的角度去引导需求,达到业务需求与技术的平衡
- 重构之后运行所有测试,确保第1点正常或者在预期范围内
- 代码尽量清楚地表达程序员意图(注释、逻辑清晰以及命名规范等)
注:重要性从上往下
代码重构主要关注的点:
- OO (面向对象的三大基本原则)
- SRP (权责单一,类只有一条被修改的理由)
- DYR (没有重复代码)
- OCP (开闭原则,类对扩展开放,对修改关闭)
- DIP (依赖倒置)
- LKP (最少知识原则,类与类之间的耦合最低)
代码部分动手基本思路:
前提是基本原则中的第1、2点 , 评审过后才能对代码动手:
从需要重构的方法开始,依据SRP细分函数功能.再根据SPR原则分离为不同的类.
如果类之间存在依赖关系,而且被依赖的类以后可能被修改,则用依赖倒置原则,抽象出接口或抽象类。
- 从修改命名入手
- 函数应该短小,逻辑清晰,只做一件事,并做好这件事(SRP)
- 业务逻辑的重构
- 异常处理重构,系统异常与业务异常分离,类型安全,异常处理的时间点等
- 检查类的设计, 主要是OO, 高内聚低耦合、开闭原则、DIP、操作类与数据实体类的分离等
单元测试:
单元测试基本流程:BUILD(构造数据) - OPERATE(操作) - CHECK(验证)
单元测试的first原则如下:
1.F fast 快
2.I Independent 独立
3.R repeat 可重复
4.S self-validate 自我验证
5.T Timely 及时编写
性能测试:
帮助开发人员了解重构的效果,检查重构方案的存在的不足,尽早发现和解决问题。