重构原则

断了今生、忘了曾经 提交于 2019-12-11 04:46:37

一、何谓重构(What)

视上下文的不同,重构有两种定义:

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

重构(动词):使用一系列重构的手法,在不改变软件可观察行为的前提下,调整其结构。

1、重构的目的是使软件更容易被理解和修改。

2、重构不会改变软件的可观察的行为——重构之后软件的功能一如以往。

在使用重构技术开发软件时,有两种截然不同的行为:添加新代码,以及重构。这便是“两顶帽子”。

添加新功能时,你不应该修改既有代码,只管添加新功能。通过测试,你可以衡量自己的工作进度。 
重构时你就不能再添加新功能,只管改进程序结构,只在绝对必要时才修改测试。

二、为何重构(Why)

1、重构改进软件设计

2、重构使软件更容易理解

3、重构帮助找到bug

4、重构提高编程速度

三、何时重构(When)

这里作者提出:几乎任何情况下,都反对专门拨出时间进行重构。重构应该随时随地进行。你不应该为重构而重构,之所以重构,是因为你想做别的什么事,而重构可以帮你把那些事做好。

三次法则:第一次做某事只管去做;第二次做类似的事,虽然会反感但也可勉强去做;第三次再做类似的事,你就该重构了。

事不过三,三则重构。

1、添加功能时重构

最常见的时机就是给软件添加新特性的时候,可以帮助我理解需要修改的代码。

如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。

2、修补错误时重构

调试过程中运用重构,为了让代码更具可读性,可以加深自己的理解,找出bug。

3、复审代码时重构

重构可以帮助我复审别人的代码,还可以帮助代码复审工作得到更具体的结果。

何时不该重构

1、重新编写所有代码的时候

有时候既有代码太混乱,重构不如重写来的简单。

重写有一个清楚的讯号:现有代码根本能不正常运行,代码里面满是错误,无法稳定运行。

2、项目已近最后期限

重构的确能提高生产力。如果最后没有足够时间,就表示你其实早该重构。

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!