| 查看: 458 | 回复: 0 | |||
| 当前主题已经存档。 | |||
[交流]
什么是软件重构(Refactoring)
|
|||
|
什么是Refactoring? 每个人似乎都有自己的Refactoring的定义,尽管他们讲的就是同一件事情。在那么多的定义中,最先对Refactoring进行理论研究的Raloh Johnson的话显然更有说服力: Refactoring是使用各种手段重新整理一个对象设计的过程,目的是为了让设计更加灵活并且/或者更可重用。你可能有几个理由来做这件事情,其中效率和可维护性可能是最重要的原因。 Martin Fowler[Fowler]把Refactoring定义为两部分,一部分为名词形式: Refactoring(名词): 在不改变可观察行为的前提下,对软件内部结构的改变,目的是使它更易于理解并且能够更廉价地进行改变。 另一部分则是动词形式: Refactor(动词): 通过应用一系列不改变软件可观察行为的refactoring来重构一个软件。Martin Fowler的名词形式就是说Refactoring是对软件内部结构的改变,这种改变的前提是不能改变程序的可观察的行为,这种改变的目的就是为了让它更容易理解,更容易被修改。动词形式则突出Refactor是一种软件重构行为,这种重构的方法就是应用一系列的refactoring。 软件结构可以因为各种各样的原因而被改变,如进行打印美化、性能优化等等,但只有出于可理解性、可修改、可维护目的的改变才是Refactoring。这种改变必须保持可观察的行为,按照Martin的话来说,就是Refactoring之前软件实现什么功能,之后照样实现什么功能。任何用户,不管是终端用户还是其他的程序员,都不需要知道某些东西发生了变化。 [ Last edited by 幻影无痕 on 2006-11-13 at 08:13 ] |
» 猜你喜欢
课题组招2027级博士 上海工程技术大学 激光智能制造方向
已经有4人回复
现代”学阀”该如何界定
已经有8人回复
上海工程技术大学 激光智能制造课题组 2027级博士研究生招生
已经有3人回复
实名举报:华南理工大学物理与光电学院副院长李志远婚内两次出轨女学生(博士)
已经有16人回复
上海工程技术大学激光智能制造课题组|2027级博士研究生招生公告
已经有11人回复
上海工程技术大学激光智能制造课题组招收博士研究生
已经有10人回复
申博发邮件
已经有11人回复
各位大神,目前国内有哪些比较好用的逆合成软件?
已经有12人回复
我的奶奶
已经有3人回复
国社科系统bug了,是不是要放榜了?
已经有9人回复










回复此楼