



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、浅谈重构技术在软件开发中的应用3400字 摘要:消费力的开展,信息技术的进步,软件功能的变化,使重构在设计开发过程中的地位和作用日益凸显。本文从重构谈起,介绍了它在软件开发中的必要性、目的、需要重构的几种情况、重构的 “重点等。 关键词:重构 目的 重点 难点随着信息技术的开展和进步,人们对于软件的功能不断提出更高的要求,一个完美得可以预见将来任何变化的设计,或一个灵敏得可以包容任何扩展的设计是不存在的。软件设计人员对开发的工程往往只能从大方向予以掌控,而无法预知每个细枝末节,况且用户往往要在软件成型后,根据实际情况提出修改的意见,设计人员在根据意见对功能和设计进展调整。所以,测试为先,持续重
2、构作为良好开发习惯被越来越多的人所采纳,测试和重构成为保证软件质量、满足用户需求的法宝。 一、浅谈重构重构Refactoring是指在不改变软件现有功能的根底上,通过调整程序代码改善软件的质量、性能,使其程序的设计形式和架构更趋合理,进步软件的扩展性和维护性。软件重构主要用于进步软件质量、对构建中、对完成的软件进展维护修改。如今的工程大多放弃了对代码的前瞻性,因此,对软件的重构就尤为重要。原那么包括:1、只对软件内部构造进展修改,而不改变软件的外部行为。2、增加软件功能、修改设计、代码修补、代码重写有时候并不属于重构。3、软件重构是防止不了的,不管你是否乐意。4、重构的最正确时期在开发阶段,重
3、构不能代替重写,也不用于修正代码缺陷。 二、软件重构的必要性一个软件总是为解决某种特定的需求而产生,时代在开展,客户的业务也在发生变化。随着软件需求的变更,软件必须相应的改变。考虑到本钱和时间等因素,软件要适应需求的变化,以保持自己的生命力。软件产品最初是经过精心的设计,具有良好架构的。但是随着时间的开展、需求的变化,必须不断的修改原有的功能、追加新的功能,还免不了有一些缺陷需要修改。为了实现变更,不可防止的要违背最初的设计构架。新的需求越来越难实现,软件的构架对新的需求渐渐的失去支持才能,而是成为一种制约。最后新需求的开发本钱会超过开发一个新的软件的本钱,这就是这个软件系统的生命走到尽头的时
4、候。重构可以最大限度的防止这样一种现象。系统开展到一定阶段后,使用重构的方式,不改变系统的外部功能,只对内部的构造进展重新的整理。通过重构,不断的调整系统的构造,使系统对于需求的变更始终具有较强的适应才能。由于可重构技术满足系统对环境和应用对象变化的适应性要求,进步了系统的智能化和可维护性,可重构技术在系统的设计中得到了广泛应用。 三、重构的目的1、持续偏纠和改良软件设计。重构和设计是相辅相成、彼此互补的。有了重构,仍然必须做预先的设计,但是不必是最优的设计,只需要一个合理的解决方案就够了,假如没有重构、程序设计会逐渐腐败变质。重构就是整理代码,让所有带着发散倾向的代码回归本位。2、使代码更易
5、为人所理解。3、帮助发现隐藏的代码缺陷。重构代码时逼迫你加深理解原先所写的代码,通过重构代码可以加深对原设计的理解,发现其中的问题和隐患,构建出更优的代码。4、从长远来看,有助于进步编程效率。改善设计、进步可读性、减少缺陷是为了稳住阵脚。良好的设计是成功的一半,停下来通过重构改良设计,或许会在当前减缓速度,但它带来的后发优势却是不可低估的。 四、在软件开发中重构的重点1、重构与设计。重构和设计彼此互补。Alistair Cockburn说:“有了设计,我可以考虑更快,但是其中充满小破绽。重构有时可以成为“预先设计的替代品。不必做任何设计,按照最初想法开场编码,让代码有效运作,然后再将它重构成型
6、。只运用重构也能收到效果,但并不是最有效的途径。即使极限编程Extreme Programming爱好者也会进展预先设计。他们会使用CRC卡或类似的东西来检验各种不同想法,然后才得到第一个可被承受的解决方案,然后才能开场编码,然后才能重构。关键在于:重构改变了“预先设计的角色。假如没有重构,你就必须保证“预先设计正确无误。假如将来需要对原始设计做任何修改,代价将非常高昂。因此需要把更多时间和精力放在预先设计上,防止日后修改。假如选择重构,问题的重点就转变了。仍然做预先设计,但是不必一定找出正确的解决方案。只需要得到一个足够合理的解决方案。在实现这个初始解决方案的时候,对问题的理解也会逐渐加深,
7、可能会发觉最正确解决方案和当初设想的有些不同。采用重构将日后的修改本钱不再高昂。这种转变导致一个重要结果:软件设计朝向简化前进了一大步。过去未曾运用重构时,要建造一个灵敏的解决方案,所需的本钱难以估算。灵敏的解决方案比简单的解决方案复杂许多,所以最终得到的软件通常也会更难维护。就算走在预先设想的方向上,你也必须理解如何修改设计。假如变化只出如今一两个地方,不算大问题。然而变化其实可能出如今系统各处。假如在所有可能的变化出现地点都建立起灵敏性,整个系统的复杂度和维护难度都会大大进步。重构可以通过一条不同的途径来应付变化带来的风险。可以带来更简单的设计,同时又不丧失灵敏性,降低了设计过程的难度,减
8、轻了设计压力。2、重构与性能。虽然重构导致软件运行更慢,但使软件的性能优化更易进展。在性能优化阶段,首先应以一个量测工具监控程序的运行,理解程序中哪些地方大量消耗时间和空间。找出性能热点hot spot所在的一小段代码。然后集中关切这些性能热点,并使用“持续关切法中的方法来优化它们,这样较少的工作量便可显现较好的成果。和重构一样,小幅度进展修改。每走一步都需要编译、测试、再次量测。假如没有进步性能,就应该撤销此次修改。继续这个“发现热点、去除热点的过程,直到获得客户满意的性能为止。一个被良好分解well-factored的程序可从两方面帮助此种优化形式。首先,它让你有比拟充裕的时间进展性能调整
9、performance tuning,因为有分解良好的代码在手,就可以更快速地添加功能,也就有更多时间用在性能问题上。其次,面对分解良好的程序,你在进展性能分析时便有较细的粒度granularity,于是量测工具带入范围较小的程序段落中,而性能的调整也变得比拟容易。由于代码更加明晰,因此可以更好地理解自己的选择,更清楚哪种调整起关键作用。重构可以帮助写出更快的软件。短期来看,重构会使软件变慢,但使优化阶段中的软件性能调整更容易。 五、重构需要注意的地方有时候不应该重构,比方应该重新编写所有代码的时候。有时候既有代码实在太混乱,重构它还不如从新写一个来得简单。重写而非重构的一个讯号就现有代码根本
10、不能正常运作。可能只是试着做点测试,然后就发现代码中满是错误,根本无法稳定运作。重构之前要保证代码必须可以在大局部情况下正常运作。假如工程已近最后期限,应该防止重构。此时,重构过程赢得的消费力只有在最后期限过后才能表达出来。假如工程已经非常接近最后期限,不应该再重构,因为已经没有时间了。多个工程经历显示:重构确实可以进步消费力。假如最后没有足够时间,通常表示早该进展重构。 六、结语随着技术的开展,软件设计的程度和要求不断进步,功能日益庞大和复杂,对设计人员的素养也有了更高的要求,理解重构、学习重构、运用重构,成为摆在我们每一个软件行业人员面前的一个重要课题,科学、合理的设计加上认真、严谨的重构,将保证软件产品始终满足时展的需要,保持旺盛的生命力。参考文献:1美
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管材工矿合同范本
- 牌匾施工安全合同范本
- 电工合同范本
- 冷库设备采购合同范本
- 20xx年情人节:浪漫粉色主题模板
- 团体游泳培训合同范本
- 个人维修合同范本
- 农村三变合同范本
- 水暖建材进货合同范本
- 木工刀具购销合同范本
- 黄帝内经原文及译文
- 某别墅中央吸尘系统设计施工规范说明
- 体育中国(上海大学)超星尔雅学习通网课章节测试答案
- 麒麟小学创建五好关工委工作实施方案
- 2023年民主与科学杂志社招聘笔试备考题库及答案解析
- (2.1)-外科感染-疖、痈
- 医疗机构不良执业行为记分管理-课件
- 沥青路面施工质量控制要点课件
- 当代西方政治思潮课件
- 2022企业冬季安全生产专题PPT知识讲座培训课件
- 考研复习有机化学选择题400题(页尾附答案)
评论
0/150
提交评论