Refactoring-重构.pptVIP

  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文档。上传文档
查看更多
管理咨询培训

Refactoring(重构) 什么是Refactoring Refactoring是对已经完成的代码进行改进的过程。在不 对代码的外部行为进行改动的情况下,对代码内部的结 构进行优化。 Refactoring是严谨地对完成的代码进行清理的从而减少 出错的一种方法。 Refactoring的实质是对完成代码的设计进行改进。 Refactoring是XP项目中每天的例行练习。 Refactoring必须和Test-Driven Design and Development 伴随进行。 为什么要Refactoring? Refactoring的目的: 1. 改进软件的设计。 程序员对代码所做的为了满足短期利益代码改动,或再没有完全清 楚增个架构下的改动,都很容易是代码失去它的清晰结构,偏离需 求或设计。而这些改动的积累很容易使代码偏离它原先设计的初衷 而变得不可立即和无法维护。 Refactoring则帮助重新组织代码,重新清晰的体现结构和进 一步改进设计。 为什么要Refactoring? 为什么要Refactoring? Refactoring的目的: 3. Refactoring帮助尽早的发现错误(Defects) Refactoring是一个code review和反馈的过程。在另一个时段重新审视自己或别人代码,可以更容易的发现问题和加深对代码的理解。 Refactoring是一个良好的软件开发习惯。 为什么要Refactoring? Refactoring的目的: 4. Refactoring可以提高提高开发速度 Refactoring对设计和代码的改进,都可以有效的提高开发速度。 好的设计和代码质量实体提高开发速度的关键。在一个有缺陷的设计和混乱代码基础上的开发,即使表面上进度较快,但本质是试延后对设计缺陷的发现和对错误的修改,也就是延后了开发风险,最终要在开发的后期付出更多的时间和代价。 Refactoring和传统流程 在传统的流程中,分为设计和编码两个阶段。设计阶段(概要设计, 详细设计)在编码阶段(先设计,后编码)之前。 在传统的过程中,设计是一个很严谨和占用大量时间的阶段(比如 一个项目6个月,4个月需求分析和设计),从设计阶段获得的几乎 不会变化的详细设计文档,然后程序员对这些详细设计进行实现。 现实: 程序员需要改动代码来迎合需求的改变。 程序员需要改动代码来能满足实际中性能的要求 程序员没能理解和按设计实现 程序员为了赶DeadLine对代码做的Quick-and-Ugly修改 结果:代码从设计偏离,设计变的过时 Refactoring和敏捷流程 Refactoring表现敏捷方法的设计哲学: 软件开发是一个进化的过程。 过去的传统的设计方法则专著于软件的设计阶段,力求整体设计的 完美和详细,从而防止开发过程的后期出现没由预见到的情况而危 害软件的质量和进度。 敏捷方法则专注于当前的设计的完美,不过分考虑将来设计,依 赖目前的好的设计和代码来应付将来可能出现的需求和情况。 而Refactoring就是敏捷方法的实现其设计哲学的工具。 什么时候适合做Refactoring? 在开始增加一个新的功能之前 为了增加一个新的功能,程序员需要首先读懂现有的代码。 在修复一个错误的时候 为了修复一个Bug,程序员需要读懂现有的代码。 在做Code Review的时候 什么时候不适合做Refactoring? 代码太混乱,设计完全错误 与其Refactor,不如重新开始。 明天是DeadLine 永远不要做Last-Minute-Change。推迟Refactoring,但不可以忽略,即使进入Production的代码都正确的运行。 Refactoring的工作量显著的影响Estimate 一个Task的estimate是3天,如果为了Refactoring,需要更多的时间( 2天或更多)。推迟Refactoring,同步可以忽略。可以把这个Refactoring作为一个新的Task,或者安排在Refactoring的Iteration中完成。 Refactoring的流程 读懂代码(包括测试例子代码) Refactoring 运行所有的Unit Tests Bad Smells Duplicated Code Long Method Large Class Long Parameter List Divergent Change Shortgun Surgery Feature Envy Data Clumps Primitive Obsession Switch Statements Parallel Inh

文档评论(0)

1711647406 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档