纲要
3W1H
- why 为什么重构
- what 重构什么
- when 什么时候重构
- how 如何重构
重构的定义
软件设计大师 Martin Fowler 这样定义重构:
“重构是一种对软件内部结构的改善,目的是在不改变软件的可见行为的情况下,使其更易理解,修改成本更低。”
重构的目的:为什么要重构 (why)
首先,重构是时刻保证代码质量的一个极其有效的手段,不至于让代码腐化到无可救药的地步。
其次,优秀的代码或架构不是一开始就能完全设计好的。是一个迭代,不断演进的过程。
最后,重构是避免过度设计的有效手段。
tip: 初级工程师在维护代码,高级工程师在设计代码,资深工程师在重构代码。
重构的对象:到底重构什么(what)
根据重构的规模,我们可以笼统地分为大规模高层次重构(大重构)和小规模低层次重构(小重构)。
大重构:
- 重构的范围
- 系统
- 模块
- 代码结构
- 类与类之间的关系
- 重构手段
- 分层
- 模块化
- 解耦
- 抽象可复用组件
- 重构工具
- 设计思想
- 设计原则
- 设计模式
小重构:
- 重构范围
- 类
- 函数
- 变量
- 重构手段
- 规范命名
- 规范注释
- 消除超大类或函数
- 提取重复代码
tip:我们重构的对象是软件重个生命周期。
重构的时机:什么时候重构(when)
重构可以是一刀切,也可以分阶段。我们提倡的策略是持续重构。
把重构作为我们开发的一部分,见到不符合编码规范,不好的设计,超长函数都可以随时重构一下。成为一种开发习惯,对项目对自己都会很有好处。
tip: 持续重构意识很重要
重构的方法:又该如何重构(how)
对于大重构难度比较大,需要有组织,有计划地进行,分阶段地小步快跑,时刻让代码处于一个可运行的状态。
对于小重构难度相对小,因为影响范围小,改动耗时短,所以只要你愿意并且有时间,随时随地都可以重构。
tip: 不管大还是小重构,都要保证代码可运行,逻辑正确的状态。
关于我
我的博客:https://yezihack.github.io
欢迎关注我的微信公众号【空树之空】,共同学习,一起进步~