refactoring(重构)

refactoring(重构)

ID:9916134

大小:293.50 KB

页数:25页

时间:2018-05-11

refactoring(重构)_第1页
refactoring(重构)_第2页
refactoring(重构)_第3页
refactoring(重构)_第4页
refactoring(重构)_第5页
资源描述:

《refactoring(重构)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Refactoring(重构)什么是RefactoringRefactoring是对已经完成的代码进行改进的过程。在不对代码的外部行为进行改动的情况下,对代码内部的结构进行优化。Refactoring是严谨地对完成的代码进行清理的从而减少出错的一种方法。Refactoring的实质是对完成代码的设计进行改进。Refactoring是XP项目中每天的例行练习。Refactoring必须和Test-DrivenDesignandDevelopment伴随进行。为什么要Refactoring?Refactoring

2、的目的:1.改进软件的设计。程序员对代码所做的为了满足短期利益代码改动,或再没有完全清楚增个架构下的改动,都很容易是代码失去它的清晰结构,偏离需求或设计。而这些改动的积累很容易使代码偏离它原先设计的初衷而变得不可立即和无法维护。Refactoring则帮助重新组织代码,重新清晰的体现结构和进一步改进设计。为什么要Refactoring?Refactoring的目的:2.提高代码质量,可维护性。容易理解的代码可以很容易的维护和做进一步的开发。即使对写这些代码的程序员本身,容易理解代码也可以帮助容易地做修改。程序

3、代码也是文档。而代码首先是写给人看的,让后才是给计算机看的。为什么要Refactoring?Refactoring的目的:3.Refactoring帮助尽早的发现错误(Defects)Refactoring是一个codereview和反馈的过程。在另一个时段重新审视自己或别人代码,可以更容易的发现问题和加深对代码的理解。Refactoring是一个良好的软件开发习惯。为什么要Refactoring?Refactoring的目的:4.Refactoring可以提高提高开发速度Refactoring对设计和代码的

4、改进,都可以有效的提高开发速度。好的设计和代码质量实体提高开发速度的关键。在一个有缺陷的设计和混乱代码基础上的开发,即使表面上进度较快,但本质是试延后对设计缺陷的发现和对错误的修改,也就是延后了开发风险,最终要在开发的后期付出更多的时间和代价。Refactoring和传统流程在传统的流程中,分为设计和编码两个阶段。设计阶段(概要设计,详细设计)在编码阶段(先设计,后编码)之前。在传统的过程中,设计是一个很严谨和占用大量时间的阶段(比如一个项目6个月,4个月需求分析和设计),从设计阶段获得的几乎不会变化的详细设

5、计文档,然后程序员对这些详细设计进行实现。现实:程序员需要改动代码来迎合需求的改变。程序员需要改动代码来能满足实际中性能的要求程序员没能理解和按设计实现程序员为了赶DeadLine对代码做的Quick-and-Ugly修改结果:代码从设计偏离,设计变的过时Refactoring和敏捷流程Refactoring表现敏捷方法的设计哲学:软件开发是一个进化的过程。过去的传统的设计方法则专著于软件的设计阶段,力求整体设计的完美和详细,从而防止开发过程的后期出现没由预见到的情况而危害软件的质量和进度。敏捷方法则专注于当

6、前的设计的完美,不过分考虑将来设计,依赖目前的好的设计和代码来应付将来可能出现的需求和情况。而Refactoring就是敏捷方法的实现其设计哲学的工具。什么时候适合做Refactoring?在开始增加一个新的功能之前为了增加一个新的功能,程序员需要首先读懂现有的代码。在修复一个错误的时候为了修复一个Bug,程序员需要读懂现有的代码。在做CodeReview的时候什么时候不适合做Refactoring?代码太混乱,设计完全错误与其Refactor,不如重新开始。明天是DeadLine永远不要做Last-Minu

7、te-Change。推迟Refactoring,但不可以忽略,即使进入Production的代码都正确的运行。Refactoring的工作量显著的影响Estimate一个Task的estimate是3天,如果为了Refactoring,需要更多的时间(2天或更多)。推迟Refactoring,同步可以忽略。可以把这个Refactoring作为一个新的Task,或者安排在Refactoring的Iteration中完成。Refactoring的流程读懂代码(包括测试例子代码)Refactoring运行所有的Un

8、itTestsBadSmellsDuplicatedCodeLongMethodLargeClassLongParameterListDivergentChangeShortgunSurgeryFeatureEnvyDataClumpsPrimitiveObsessionSwitchStatementsParallelInheritanceHierarchiesLazyClassSpeculativ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。