重构在项目开发中应用探析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
重构在项目开发中应用探析

重构在项目开发中应用探析   摘 要:讨论了重构的定义、作用,并分析了重构的条件,最后结合重构的原则总结了重构的具体步骤。对程序员从事项目开发具有一定的指导意义。??   关键词:重构;项目开发;应用;探析??   中图分类号:TP311.11 文献标识码:A 文章编号:1672-7800(2011)10-0018-03?お?   ??   作者简介:许波勇(1971-),男,江苏南通人,徐州机电工程高等职业学校讲师,研究方向为软件项目开发。      0 引言??    在项目开发过程中,面向对象和设计模式的思想主要是处理项目“动态变更”的需求,它们用抽象类为功能扩展预留了子类实现的空间,用“面向对象编程”的原则分离了内部功能逻辑和外部调用动作,更用组件化的模块结构为代码重用提供了必要的组织基础。??    中国有句古话“上功治未病”。如果在项目开发的过程中就非常注重代码的结构,那么项目维护的代码不会伤筋动骨的。反之,如果在开发过程中一味地追求现有的便易性,那么在维护工作中就要面临修改代码结构的风险。如何解决该问题呢?重构就是解决该问题的一个有效途径。??   1 什么是重构??   1.1 重构的定义??    在著名的Refactoring文档中,面向对象思想方面的专家Martin Flower对重构的定义如下:??    (1)重构是对软件内部结构的调整,目的是在在不改变软件的可察行为的前提下,提高其可理解性,降低其修改成本。??   (2)使用一系列重构的准则手法(尤其是设计模式的手法),在不改变软件的可察行为的前提下,调整其结构。??   1.2 重构的内涵??    从1.1所述,结合项目开发的实际过程,我们可以看出重构的内涵:??    (1)重构不是目的,而是手段,其目的是提高代码的可读性和降低其维护成本。??    (2)重构的主要工作是在保护软件功能和工作模式的前提下,调整软件内部结构。一般来说,这种调整是以设计模式和面向对象的思想为指导的。??    (3)虽然代码经过重构调整后,可能会产生一些冗余的结构,并有可能降低运行效率,但重构后的代码将大大降低其维护的开销。??   2 重构的作用??    重构的作用主要有如下4点:??    (1)重构可以使代码更易于理解,能让代码看起来更优雅,还能让代码的修改者和阅读者更容易反映开发者的意图。??    (2)重构可以改进软件的设计。如果没有重构,程序的设计会逐渐在需求变更的腐蚀下变质,偏离它原来的设计结构和动机。通过重构,可以帮助程序维护它应有的形态,让程序回到它原来的位置。重构不但可以降低不必要的复杂读,而且可以优化修改过度的设计。因此,结构良好的程序通常需要更少的代码和更低廉的维护代价。??    (3)重构可以让代码结构更为清晰,让程序员能深入代码的行为和逻辑,并恰到好处地将新的理解反馈回去。??    (4)重构可以提高开发的速度。因为如果没有重构,代码会逐渐变得非常庞大,程序员将不得不花更多的时间用于代码调试和理解程序的行为。从软件工程的角度来说,良好的设计才是快速开发的根本,重构正好可以防止代码腐败,保持程序的结构,使程序更易于理解,甚至还能改善程序的设计。??   3 重构的条件??    虽然项目开发的原则是“从本入手,标本兼治”,即在项目设计时就尽量为模块提供足够多的溉重构空间;但是,当项目进入维护阶段后,出于各种原因,程序员往往会破坏模块的重构性。这种破坏达到一定程度的时候,将不得不面临项目维护的困境。例如,模块代码过长,逻辑过于复杂将会带来“牵一发而动全身”和“有大量Bug潜伏”的严重后果。此外,模块间的高耦合甚至会带来“可读性差”和“维护点增多”等问题。??    所以,在项目开发和维护过程中,当代码和模块具有以下特征时,就需要重构此代码模块了。表1列举了待重构的代码所具有的特征和相应的重构对策。??   所以,程序员们有必要对项目代码进行经常性的检查,一旦发现模块或代码具有表1所描述的特征,并已经或可能造成危害,就需要根据上述重构对策和下面将要描述的重构原则,适当地修改代码或是模块的结构。??      待重构的代码和模块的特征[]重构对策   代码中存在多次重复的代码(一般是指三次以上)[]将重复的代码归纳成一个新类,尽量避免出现重复代码   过大的模块和过长的方法[]当看到一个过长的方法时,需要想办法将其划分为多个小方法,以便于分而治之   出现牵一发而动全身的修改[]通过拆分或重新组织模块的结构来实现分离模块间耦合   类之间需要过多的通信[]这两个类本应该在一起,而不应该分家。所以若条件许可,合并或整合这两个类   代码或模块缺少必要的注释和文档[

文档评论(0)

151****1926 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档