理论一:什么情况下要重构?到底重构什么?又该如何重构?
Why
重构是一种对软件内部的改善,目的是在不改变软件的可见行为的情况下,时期更容易理解,修改成本更低。
- 时刻保证代码的质量不至于积重难返
- 优秀产品迭代必然会经历的
- 避免过度设计的有效手段。避免在前期投入过多的精力做设计。
对于工程师,重构可以让人将合适的设计理念、原则、模式、规范应用实践。
What
- 大致可以分为高层次(大型)重构和低层次(小型)重构。
- 大型:对顶层代码的重构,包括系统、模块、代码结构、类之间的关系。重构的手段:分层、模块化、解耦、抽象可复用组件等。改动多,影响面大,出问题的概率大。
- 小型:代码细节的重构。针对类、函数、变量这个代码级别。比如规范命名,消除超大类或者函数、提取重复代码等。
when
- 好的策略是持续重构。平时看到了就可以随手一改。别等到不可挽回的时候重构甚至重写
how
- 对于大型重构,要做好计划,分阶段进行。每个阶段完成一小部分,然后提交、测试、运行,没问题后进入下一阶段。
- 控制好重构影响到的代码范围,保证代码一直可以正确运行。必要时可以写一些兼容过渡代码。
- 小规模的重构可以随时去做。