第三部分:理论一

第三部分:理论一

  • 关于重构安排了六节课,主要包含一下几个方面:
    • 对重构概括性的介绍,包括重构的目的(why)、对象(what)、时机(when)、方法(how)
    • 保证重构不出错的手段,这里我会重点讲解单元测试和代码的可测试性
    • 不同规模的重构,重点讲解大规模高层次重构(比如系统、模块、代码结构、类与类之间的交互等的重构)和小规模低层次重构(类、函数、变量等的重构)

重构的目的:为什么要重构(why)?

重构的定义

  • 重构是一种对软件内部结构的改善,目的是在不改变软件的可见行为的情况下,使其更易理解,修改成本更低。

为什么要进行代码重构?

  • 重构是时刻保证代码质量的一个极其有效的手段,不至于让代码腐化到无可救药的地步。
  • 优秀的代码或架构不是一开始就能完全设计好的,就像优秀的公司和产品也都是迭代出来的。
  • 重构是避免过度设计的有效手段。

重构对一个工程师本身技术的成长也有重要的意义

  • 重构实际上是对我们学习的经典设计思想、设计原则、设计模式、编程规范的一种应用。
  • 重构能力也是衡量一个工程师代码能力的有效手段。初级工程师在维护代码,高级工程师在设计代码,资深工程师在重构代码。

重构的对象:到底重构什么(what)?

  • 大型重构指的是对顶层代码设计的重构:
    • 包括:系统、模块、代码结构、类与类之间的关系等的重构
    • 重构的手段有:分层、模块化、解耦、抽象可复用组件等等
    • 这类重构的工具就是我们学习过的那些设计思想、原则和模式
    • 代码改动多、影响面大、难度大、耗时长、风险大
  • 小型重构指的是对代码细节的重构:
    • 主要是针对类、函数、变量等代码级别的重构
    • 包含:规范命名、规范注释、消除超大类或函数、提取重复代码等等
    • 小型重构更多的是利用我们能后面要讲到的编码规范
    • 改动集中、简单可操作性强、耗时短、风险小

重构的时机:什么时候重构(when)?

  • 平时不注重代码质量,堆砌烂代码,实在维护不了了就大刀阔斧地重构、甚至重写的行为不可取
  • 重构策略应该是持续重构。
  • 重构能力很重要,持续重构意识更重要。时刻具有持续重构意识,才能避免开发初期就过度设计,避免代码维护过程中质量的下降。

重构的方法:又该如何重构(how)?

  • 在进行大型重构的时候,我们要提前做好完善的重构计划,有条不紊地分阶段来进行。每个阶段完成一小部分代码的重构,要控制好重构影响到的代码范围,考虑好如何兼容老的代码逻辑。
  • 大规模高层次的重构一定是有组织、有计划,并且非常谨慎的,需要有经验、熟悉业务的资深同事来主导。
  • 小规模低层次的重构,因为影响范围小,改动耗时短,所以,只要你愿意并且有时间,随时都可以去做。
  • 对于重构这件事情,资深的工程师、项目 leader 要负起责任来,没事就重构一下代码,时刻保证代码质量处在一个良好的状态。否则会产生“破窗效应”。
posted @ 2021-10-04 20:01  起床睡觉  阅读(56)  评论(0编辑  收藏  举报