美文网首页《重构》读书笔记
《重构》学习笔记(01)--什么是重构

《重构》学习笔记(01)--什么是重构

作者: 若隐爱读书 | 来源:发表于2019-05-12 18:55 被阅读0次

什么是重构?

所谓重构是这样一个过程:在不改变代码外在行为的前提下,对代码作出修改,以改进程序的内部结构。本质上说,重构就是在代码写好之后改进它的设计。

重构(名词):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。

重构的目的是使软件更容易被理解和修改。重构不会改变软件可观察的行为——重构之后软件功能一如既往。重构技术就是以微小的步伐修改程序,如果你犯下错误,很容易便可以发现它。

重构的节奏:测试、小修改、测试、小修改、测试、小修改......尽管遵循重构手法可以使我避免绝大多数引入bug的情形,但是人就可能引入错误,因此,重构需要引入可靠的测试。

为何重构?

(1) 重构改进软件设计。如果没有重构,程序的设计会逐渐腐败变质。相同的代码往往会在不同的地方做着相同的事,改进设计的一个方向就是消除这些重复代码,这正是优秀设计的根本。

(2)重构使软件更容易理解。除了计算机以外,几个月后可能会有另一名程序员尝试读懂你的代码并做一些修改。因此,一份易懂的代码会提升整体编程效率。另外,我们还可以利用重构协助理解不熟悉的代码。

(3)重构帮助找到bug。对代码进行重构,可以帮助我们深入理解代码,对代码理解的越深,就越能帮我们找到bug。重构能够帮我们更有效地写出强健的代码。

(4)重构提高编程速度。重构可以帮助我们更快速地开发软件,因为它阻止系统腐败变质,它甚至还可以提高设计质量。

tips:任何一个傻瓜都能写出计算机可以理解的代码,唯有写出人类容易理解的代码,才是优秀的程序员。

何时进行重构?

三次法则:第一次做某事时只管去做;第二次做类似的事情会产生反感,但无论如何还可以去做;第三次再做类似的事情,你就应该重构。

添加功能时重构。添加功能时是最常见的重构时机,因为重构可以帮助我快速理解我需要修改的代码。另外一个原动力就是:代码的设计无法让我轻松的添加我需要的特性。

修补错误时重构。当你无法一眼看出bug所在位置时,就是梳理代码并且进行重构的好时机。

复审代码时重构。代码检视不应该是对业务逻辑的审核,更应该是让经验丰富的开发者将开发经验传递给缺乏经验的新手开发的方法。重构方法应该成为一个重要的issue.

相关文章

  • 《重构》学习笔记(01)--什么是重构

    什么是重构? 所谓重构是这样一个过程:在不改变代码外在行为的前提下,对代码作出修改,以改进程序的内部结构。本质上说...

  • 重构代码之美

    什么是重构; 为什么要重构; 什么时候重构; 怎样避免重构的现象; 重构的难点在哪里; 如何来实施代码重构; 重构...

  • 改善既有代码的设计笔记(三)代码的坏味道

    前面两篇笔记涉及到了部分重构的时机,本篇笔记全部为重构代码的时机。重构时机,不是僵硬死板的必须在什么时候执行,下面...

  • 如何实施代码重构?

    阅读《重构》的笔记献上。 重构的定义 重构是在不改变软件可观察行为的前提下改善其内部结构。 重构的节奏 以微小的步...

  • 重构(二)什么是重构

    什么样的代码是好代码 代码是人写的,也是写给人看的,丑陋的代码难以看懂。差劲的代码很难找到修改点。 傻瓜都能写出计...

  • 重构:读书笔记

    重构读书笔记 第一章 重构,第一个案例 第二章 重构原则 2.1 何为重构 重构(名词):对软件内部结构的一种调整...

  • 《重构》学习笔记

    最近在读《重构》这本书,试着把书中对我启发较大的一些点记录下来,以便回顾学习。 一、replace temp wi...

  • 2018.1.31

    什么是走进新时代———-过去的玩法结束,一切重构:生产关系重构、劳动关系重构!

  • 30 - 重构之代码解耦

    重构可以分为大规模高层重构(简称“大型重构”)和小规模低层次重构(简称“小型重构”)。大型重构是对系统、模块、代码...

  • 重构三部曲(一):思想准备篇

    一、概述 重构三部曲为:思想准备,单元测试,重构 思想准备的目的是明确:为什么要重构,重构的理论支撑是什么 单元测...

网友评论

    本文标题:《重构》学习笔记(01)--什么是重构

    本文链接:https://www.haomeiwen.com/subject/dezcaqtx.html