- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈重构技术在软件开发中应用
浅谈重构技术在软件开发中应用
摘要:生产力的发展,信息技术的提高,软件功能的变化,使重构在设计开发过程中的地位和作用日益凸显。本文从重构谈起,介绍了它在软件开发中的必要性、目标、需要重构的几种情况、重构的 “重点”等。
关键词:重构 目标 重点 难点
随着信息技术的发展和提高,人们对于软件的功能不断提出更高的要求,一个完美得可以预见未来任何变化的设计,或一个灵活得可以容纳任何扩展的设计是不存在的。软件设计人员对开发的项目往往只能从大方向予以掌控,而无法预知每个细枝末节,况且用户往往要在软件成型后,根据实际情况提出修改的意见,设计人员在根据意见对功能和设计进行调整。所以,测试为先,持续重构作为良好开发习惯被越来越多的人所采纳,测试和重构成为保证软件质量、满足用户需求的法宝。
▲▲ 一、浅谈重构
重构(Refactoring)是指在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。
软件重构主要用于提高软件质量、对构建中、对完成的软件进行维护修改。现在的项目大多放弃了对代码的前瞻性,因此,对软件的重构就尤为重要。原则包括:
1、只对软件内部结构进行修改,而不改变软件的外部行为。
2、增加软件功能、修改设计、代码修补、代码重写有时候并不属于重构。
3、软件重构是避免不了的,不管你是否乐意。
4、重构的最佳时期在开发阶段,重构不能代替重写,也不用于修正代码缺陷。
▲▲ 二、软件重构的必要性
一个软件总是为解决某种特定的需求而产生,时代在发展,客户的业务也在发生变化。随着软件需求的变更,软件必须相应的改变。考虑到成本和时间等因素,软件要适应需求的变化,以保持自己的生命力。
软件产品最初是经过精心的设计,具有良好架构的。但是随着时间的发展、需求的变化,必须不断的修改原有的功能、追加新的功能,还免不了有一些缺陷需要修改。为了实现变更,不可避免的要违反最初的设计构架。新的需求越来越难实现,软件的构架对新的需求渐渐的失去支持能力,而是成为一种制约。最后新需求的开发成本会超过开发一个新的软件的成本,这就是这个软件系统的生命走到尽头的时候。
重构能够最大限度的避免这样一种现象。系统发展到一定阶段后,使用重构的方式,不改变系统的外部功能,只对内部的结构进行重新的整理。通过重构,不断的调整系统的结构,使系统对于需求的变更始终具有较强的适应能力。由于可重构技术满足系统对环境和应用对象变化的适应性要求,提高了系统的智能化和可维护性,可重构技术在系统的设计中得到了广泛应用。
▲▲ 三、重构的目标
1、持续偏纠和改进软件设计。重构和设计是相辅相成、彼此互补的。有了重构,仍然必须做预先的设计,但是不必是最优的设计,只需要一个合理的解决方案就够了,如果没有重构、程序设计会逐渐腐败变质。重构就是整理代码,让所有带着发散倾向的代码回归本位。
2、使代码更易为人所理解。
3、帮助发现隐藏的代码缺陷。重构代码时逼迫你加深理解原先所写的代码,通过重构代码可以加深对原设计的理解,发现其中的问题和隐患,构建出更优的代码。
4、从长远来看,有助于提高编程效率。改善设计、提高可读性、减少缺陷是为了稳住阵脚。良好的设计是成功的一半,停下来通过重构改进设计,或许会在当前减缓速度,但它带来的后发优势却是不可低估的。
▲▲ 四、在软件开发中重构的重点
1、重构与设计。重构和设计彼此互补。Alistair Cockburn说:“有了设计,我可以思考更快,但是其中充满小漏洞。”重构有时可以成为“预先设计”的替代品。不必做任何设计,按照最初想法开始编码,让代码有效运作,然后再将它重构成型。
只运用重构也能收到效果,但并不是最有效的途径。即使极限编程(Extreme Programming)爱好者也会进行预先设计。他们会使用CRC卡或类似的东西来检验各种不同想法,然后才得到第一个可被接受的解决方案,然后才能开始编码,然后才能重构。关键在于:重构改变了“预先设计”的角色。如果没有重构,你就必须保证“预先设计”正确无误。如果将来需要对原始设计做任何修改,代价将非常高昂。因此需要把更多时间和精力放在预先设计上,避免日后修改。
如果选择重构,问题的重点就转变了。仍然做预先设计,但是不必一定找出正确的解决方案。只需要得到一个足够合理的解决方案。在实现这个初始解决方案的时候,对问题的理解也会逐渐加深,可能会察觉最佳解决方案和当初设想的有些不同。采用重构将日后的修改成本不再高昂。
这种转变导致一个重要结果:软件设计朝向简化
文档评论(0)