博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重构学习-重构原则
阅读量:5843 次
发布时间:2019-06-18

本文共 1343 字,大约阅读时间需要 4 分钟。

什么是重构:


视上下文重构有两个不同的定义,第一个定义是名词形式

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

重构的另一人用法是动词形式

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

有人说重构就是整理代码 ,从某种角度上来说,是,但是重构不止于此,因为它提供了一种更为高效且受控的代码整理

技术,运用代码重构技术后你会发现对代码的整理会比以前更加高效。

重构的目的是使软件更容易被理解和侯。你可以在软件的内部做很多修改,但必须对软件可观察的外部行为只造成很小

的变化,甚至不造成变化。与之形成对比的是性能优化。和重构一样,性能优化通常也不会改变组件的行为,只改变执行

速度,只修改内部结构。两者的出发点不同,性能优化可能会使代码较难理解。

强调一下,重构不会改变软件的可观察行为,也就是说重构之后功能和原来一样。

为什么要重构:


重构改进软件设计,如果没有重构,程序的设计会逐渐腐败变质。好多时候我们为了马上解决问题,就直接修改程序,程序

逐渐失去了自己的结构,这样下去程序会越来越难理解。重构就是整理代码让代码回到应处的位置上。

完成同样一伯事情,设计不良的程序会往往需要更多代码,这常常是因为代码在不同的地方使用完全相同的语句做同样的事。

改进设计的一个重要原因就是消除重复代码。代码的减少不会使系统运行的更快,因为这对程序的运行没有任何明显影响。然而

代码的减少将使未来可能的程序修改动作更容易。代码越多修改起来就越麻烦,因为有更多的代码需要阅读和理解。如果消除

重复代码,你就可以确定所有事物和行为在代码中只表述一次,这正是优秀设计的根本。

重构可以让我们的代码更容易理解和阅读,也可以帮助我们找到bug

什么时候进行重构:


事不过三,过三就重构这个原则要记住,第一次去做某件事时只管去做,第二次再去做类似的事就会不爽,但无论如何还是可以

去做,但第三次再去做类似的事件,你就应该重构。

重构的直接原因往往是帮助我理解需要修改的代码,这些代码可能是别人写的,也可能是我自己写的。无论何时只要我想理解代

码所做的事,就会问,是否能对这些代码进行重构,使我能快速理解这它,那我就会对它进行重构。

重构的原动力是:代码设计无法帮助我轻松的添加我所需要的功能,如果用某种设计方式,添加功能会简单的多,这种情况可以用

重构来弥补。重构是一个快速流畅的过程,一旦完成重构,新特性的添加会更快速,更流畅。

如果在修改bug和审查代码时发现不合理的地方也要进行重构,这样是为了更好的阅读和理解代码

何时不重构:


如果发现代码太混乱,重构它不如重写来的简单这种情况下建议重写,不用进行重构。

如果项目已经进入了最后期限,那也应该避免重构,这时已经有些晚了。最后你没有时间进行重构表明你其实早就该进行重构了

重构与性能:


有时为了让代码更容易理解,会做出一些使程序运行变慢的修改,这是个重要的问题。这个的解决方案是先写出可高试的软件,然后

调整它以求获得足够的速度。

本文转自lpxxn博客园博客,原文链接:http://www.cnblogs.com/li-peng/p/3700293.html,如需转载请自行联系原作者

你可能感兴趣的文章
vue全局引入scss文件(推荐)
查看>>
codevs——1436 孪生素数 2
查看>>
Vuejs——(4)v-if、v-for
查看>>
HDU2629 Identity Card【MAP+水题】
查看>>
POJ3438 ZOJ2886 UVALive3822 Look and Say【数列】
查看>>
About scrum reports
查看>>
IE6的height小BUG
查看>>
Cordova框架基本原理
查看>>
equals()与hashCode()方法协作约定
查看>>
让IIS只监听一个IP上的80端口
查看>>
OO第三单元总结
查看>>
数据库~Mysql里的Explain说明
查看>>
docker~学习笔记索引
查看>>
MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除
查看>>
ApacheBench~网站性能测试工具
查看>>
说说IUnitOfWork~DbContext对象的创建应该向BLL层公开
查看>>
Ionic 开发环境搭建
查看>>
C#中的Dictionary简介
查看>>
数据结构10——强连通
查看>>
css09浮动属性
查看>>