Missing Necessary Knowledge for CS Students
  • 前言
  • 基础知识
    • Git
      • 安装
      • 基本命令
      • Git Commit Template
      • GitHub
    • Vim
      • 安装
      • 教程
    • 学会获取信息
      • 学会使用英文搜索信息
      • 阅读官方文档
    • 调试
      • 断点调试
      • 网页调试
    • 测试
    • 代码规范
      • 不同编程语言的代码规范
      • 注释与文档
    • 工具链
      • 代码格式化工具(Formatter)
      • 代码检查工具(Linter)
      • 包管理器与依赖管理工具
      • 打包工具
    • 抽象
      • 封装
      • 重构
      • 究竟什么是抽象
    • 编程语言
      • 编译器与解释器
      • 强类型与弱类型
      • 静态类型与动态类型
      • 面向对象与函数式编程
    • 其他
      • Markdown
      • Jupyter Notebook
      • 虚拟机与 Docker
      • CI/CD
  • 附:一些常见工具的使用
    • Scoop
Powered by GitBook
On this page
  1. 基础知识
  2. 抽象

重构

实际上,我们上面的这个过程也演示了什么叫做“重构(reconstruction)”。很多人会对老板说“我之前写的代码已经太乱了,很难维护,我想我需要大约两个星期的时间进行重构,在这段时间里,代码是无法运行的”。事实上,这不叫做“重构”,而叫做“重写”。“重构”是一步一步将混乱的代码变得清晰可维护的过程,这是一个小步渐进式的过程,在这个过程中的任何一步,代码都是可以运行的。

这种小步渐进式的重构有很大的好处。每一步完成后,你都可以运行程序,看看程序是否按照期望运行,或者更规范一点——运行一遍测试,看看有没有引入新的 BUG。这样就可以尽可能小地降低修改代码引入新 BUG 地可能性,并且即使出现了新 BUG,你也可以知道是在哪一个小步引入的 BUG,这样就很容易排查 BUG 的位置。而重写不是这样,你无法知道新程序是否会具有比老程序更多的 BUG,并且即使出现了 BUG,也很难排查。因此,我们说重构优于重写。

Previous封装Next究竟什么是抽象

Last updated 2 years ago