`
- 浏览:
13057 次
- 性别:
- 来自:
上海
-
在软件工程中,建立完美的需求与设计,按照既有的规范编写标准统一的代码。
但是这只是个美好的愿望。
需求会改变,设计也会改变,程序员写出的代码也需要改变。修改代码不紧紧是为了完成
业务功能,还需要考虑其他的一些问题,比如以后对该代码维护是否容易。
这里代码是否容易维护包括:
1.代码维护者是否能很容易读懂你的代码。
2.代码维护者是否能够很方便修改你的代码。
当你担负着额外的责任来修改代码时,有一个很光鲜的名字来表示它,就是:重构。
重构代码,既是一个程序员的责任,也是一个可能发现bug的方式,甚至还能提高编程速
度。总之有很多好处。
代码重构之后,可能会给软件项目带来bug,或者程序运行性能降低,或者过多的重构延
误了项目的交付日期。总之也有很多坏处。
现在说到这里看似碰到了很多问题。我们知道问题肯定不仅仅是上面这些!!
有关重构的问题国外有牛人研究过(还包括学术方面的研究哦),并且给出了一些具体的
解决问题的措施和建议。如果有同学想了解些重构方面的东西的话,可以考虑买本Martin
Fowler的《Refactoring Improving the Design of Existing Code》了解下。这本书中
文译本翻译的也不错。
我最近正在读这本书。感觉很不错!!!
---------------------------------------
代码有那些重构手法呢?
一、重新组织函数部分
1.Extract Method
2.Inline Method
3.Inline Temp
4.Replace Temp with Query
5.Introduce Explaining Variable
6.Split Temporary Variable
7.Remove Assignments Parameters
8.Replace Method with Method Object
9.Substitue Algorithm
二、简化条件表达式
1.Decompose Conditional
2.Consolidate Conditional Expression
3.Consolidate Duplicate Conditional Fragments
4.Remove Control Flag
5.Replace Nested Conditional with Guard Clause
6.Replace Conditional with Polymorphism
7.Introduce Null Ojbect
这个东西有点高深,正在理解。
8.Introduce Assertion
上面这两种类型的重构,我觉得最实用。在最近的项目中,我试图在运用这些东西。
目标一:
代码要写的漂亮,写尽量少的注释,读代码本身就像读注释一样。
三、简化函数调用
1.Rename Method
2.Add Parameter
3.Remove Parameter
4.Parameterize Method
5.Replace Parameter with Explicit Methods
6.Preserve Whole Object
7.Replace Parameter with Methods
8.separate Query from Modifier
9.Introduce Parameter Object
10.Remove Setting Method
11.Hide Method
12.Replace Constructor with Factory Method
13.Encapsulate Downcast
14.Replace error code with Exception
15.Replace Exception with Test
在程序中总能看到不同的人有不同的编程特点。有些程序很明显是可以通过上面的一些
手法来重构的,但是就是不去这么做,宁愿写重复代码,宁愿干自己都觉得不合理的事
情。因为在项目中,怕承担风险是人趋利避害的一个本性。所以这种想法是代码越来越
丑陋的一个很大因素。
四、重新组织数据
1.SelfEncapsulate Field
2.Replace Data Value with Object
3.Change Value to Reference
4.Change Reference to Value
5.Replace Array with Object
6.Duplicate Observed Data
7.Change Unidirectional Association to Bidirectional
8.Change Bidirectional Association to Unidirectional
9.Replace Magic Number Symbolic Constant
10.Encapsulate Field
11.Encapsulate Collection
12.Replace Record with Data Class
13.Replace Type Code with Class
14.Replace Type Code with subclass
15.Replace Type Code with State/Strategy
16.Replace Subclass with Fields
这一部分的重构方法里,象6,14,15等助于掌握某些设计模式,比如观察者模式,策
略模式等。接下来两类重构手法通常也是和上面这个手法结合使用。因为它们的主要关
注点是对对象和类进行的重构。
五、在对象中搬移特性:
1.Move Method
2.Move Field
3.Extract Class
4.Inline Class
5.Hide Delegate
6.Remove Middle Man
7.Introduce Foreign Method
8.Introduce Local Extension
六、处理概括关系
1.Pull up Field
2.Pull up Method
3.pull up Constructor Body
4.Push down Method
5.Push down Filed
6.Extract Subclass
7.Extract Superclass
8.Extract Interface
9.Collapse Hierarchy
10.Form Tem Plate Method
11.Replace Inheritance with Delegation
12.Replace Delegation with Inheritance
TODO
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
《代码重构》一书由Martin Fowler编写,是软件开发领域中关于代码质量提升的经典之作。书中详细阐述了重构代码的必要性、重构的时机以及如何安全地重构代码。重构指的是在不改变软件外部行为的前提下,改进其内部...
总之,《重构:改善既有代码设计》是一本深入探讨代码优化的艺术和科学的书籍,对于任何希望提升自身编码技能,打造高质量软件的IT从业者来说,都是宝贵的资源。通过学习和实践书中的原则和技巧,我们可以不断提升...
"重构Java代码简洁之道"的主题旨在探讨如何通过有效的重构技术提升代码质量、可读性和可维护性,同时保持代码的简洁性。这对于任何Java开发者来说,都是一个值得深入学习的课题。 重构是一种在不改变代码外在行为的...
《代码重构》这本书是这个领域的经典之作,它深入探讨了重构的原理、方法和实践,旨在帮助开发者提高软件质量。 重构的重要性在于,随着时间的推移,代码往往会变得复杂且难以理解,这将导致维护成本增加,bug难以...
### 重构:改善既有代码的设计 #### 书籍概述与核心价值 《重构:改善既有代码的设计》这本书由Martin Fowler撰写,是一本关于软件工程领域的经典著作。它详细介绍了如何通过一系列小步骤对现有代码进行改进,进而...
通过学习《代码重构 (C# & ASP.NET)》,开发者可以更好地理解和掌握重构这一关键技能,从而提高代码质量和项目成功率。书中的源代码示例,如压缩包中的 "[Wrox] Professional Refactoring in C# & ASP.NET" 文件,...
代码重构是一种改善软件设计、提升代码可读性和可维护性的...通过对这些资料的学习和实践,开发者可以掌握重构的核心技能,提升代码质量和开发效率,同时也能更好地理解和应用版本控制系统,如SVN,以支持团队协作。
代码重构是一种重要的软件开发实践,旨在改进代码的结构和可读性,而不改变其外部行为。这个压缩包文件“代码重构源码(包含重构前后代码)”提供了面向对象编程领域中的一个实例,具体是对影片出租店租赁程序的重构...
《31天重构速成》系列文章提供了31个具体的重构技巧,帮助开发者逐步掌握这一关键技能。 **重构的必要性** 1. **避免代码遗忘**:随着时间推移,开发者可能会忘记代码的具体功能,重构可以帮助保持代码清晰,降低...
在软件开发过程中,代码重构是一项重要的技能,它旨在不改变代码外部行为的前提下,改进其内部结构,从而提升代码质量和可维护性。本文将深入探讨Java代码重构的关键点,涵盖重构原则、重构技巧以及常见的代码“坏...
总之,《重构——改善既有代码的设计》不仅是一本对于Java程序员来说非常重要的参考书,也是所有软件开发人员都应该掌握的关键技能之一。通过不断地练习和实践,开发者可以逐步提升自己的重构能力,从而写出更加高...
代码重构是一种重要的软件开发实践,其核心目标是改善代码的结构,提高代码的可读性和可维护性,而不改变其..."重构——改善既有代码的设计.pdf"这本书可能提供了深入的理论和实例,帮助读者理解和掌握这一关键技能。
在IT行业中,代码重构是一项至关重要的技能,尤其对于Java程序员而言。重构不仅能够提升代码的质量,还能增强软件的可维护性和扩展性。本文将深入探讨《看大师如何重构代码(java程序员必看)》这一主题,解析代码...
重构技术对于任何有一定经验的开发人员来说都是必须掌握的技能。一个技巧熟练的系统程序员,即使面对的是一个设计糟糕、难以理解的代码,也可以通过重构方法,将其改造成设计良好、易于维护的代码。重构可以应用于...
《重构——改善既有代码设计》是软件工程领域的一部经典著作,作者Martin Fowler,该书与《设计模式》被并称为软件工程的双雄。《重构》一书的主旨在于向读者展示重构的过程与方法,即通过一系列小的、有步骤的改变...
《代码重构设计高清版》这个压缩包集合了两本对于IT开发者至关重要的书籍,分别是《深入理解Spring Cloud与微服务构建》和《重构-改善既有代码的设计》。这两本书涵盖了软件开发过程中的两个核心主题:微服务架构和...
Java设计模式和代码重构是...通过深入学习和实践其中的理念,开发者可以提升自己的编程技能,写出更优雅、更具弹性的代码,为团队和项目带来长期的价值。所以,如果你正在寻找提升编程能力的方法,这个合集不容错过。