`
kuwoleft
  • 浏览: 1078481 次
文章分类
社区版块
存档分类
最新评论

重构原则

 
阅读更多

1.1 何谓重构

重构(名词):对软件内部结构的一种调整,目的是在不改变“软件可察行为”的前提下,提高其可理解性,降低修改成本。

重构(动词):使用一系列的重构准则,在不改变“软件可察行为”的前提下,调整其结构。

1、 重构的目的是使软件更容易被理解和修改。

2、 重构不会改变软件“可察行为”。

1.2 为何重构

1、 改进软件设计:经常性的重构能够使代码保持其本来的设计思路。并且,消除代码重复。

2、 是软件更容易被理解:把理解嵌入到代码中,而不是嵌入到大脑中。

3、 帮助你找到臭虫(BUG ): KentBeck :我不是伟大的程序员,我只是一个有着一些优秀习惯的好程序员而已。

4、 帮助你提高编程速度:良好的软件设计是快速软件开发的根本。

1.3 何时重构

你不应该为重构而重构,你之所以重构,是因为你想做别的事情,而重构可以帮助你把那些事情做好。

三次法则:

“第一次做某件事时只管去做;第二次做类似的事会产生反感,当无论如何还是做了;第三次再做类似的事,你就该考虑重构。——事不过三,三则重构。”

重构时间

1、 添加功能时重构。1 )为了方便理解代码。 2 )为了更快的添加新功能。

2、 修补错误时重构:使代码足够清晰,以使一目了然便发现bug

3、 复审代码时一并重构。

为什么重构有用

——KentBeck

程序的两面价值:今天为你做什么和明天为你做什么。

希望程序:1 )容易阅读。 2 )所有逻辑都只在唯一地点指定。 3 )新的改动不为危机现有行为。 4 )尽可能简单表达条件逻辑。

这是个性质是我们能够保持高速开发,从而增加程序的价值。

1.4 怎么对经理说

1.5 重构的难题

1、 数据库

2、 修改接口:

3、 难以通过重构手段完成的设计改动

4、 何时不该重构:产品无法正常工作;项目没有时间,即将发布。

1.6 重构与设计

重构的一项特别任务:与设计互补。原因是,你可以不必把“预先设计”当作一个完美的、肯定可以100% 解决问题的银弹,而只要此解决方案足够合理就可以了。你可以在实施此解决方案的过程中,随着对问题的理解的深入,不断的通过重构来优化设计方案。

重构的出现使软件设计朝向简化前进了一大步。未出现重构之前,我们的设计方案经常要应对软件声明周期中各种各样的变更,要求我们的方案要足够的灵活,足够的强固。这样导致的结果是“过度设计”,而使设计方案过于复杂而难于理解和维护。更失败的情况是,我们发现很多灵活性都毫无必要。

重构的出现可以改变设计的思路:如果把一个简单的设计方案重构成一个灵活的设计方案非常简单,那我们就只需要实现简单的方案就可以了。

重构可以带来简单的设计,同时又不损失灵活性。至于灵活而复杂的设计,你多数情况下并不需要他。

这个地方,和敏捷开发的思路十分的相像。同样,敏捷开发的核心中也存在:自动化测试和重构,反对过度设计。

至于系统架构层次的重构,因为重构的成本相对较高,所以预先设计的程度要相对较深。

哪怕你完全了解你的系统,也请实际测量它的性能,不要臆测。臆测会让你学到一些东西,但十有八九都是错的。

1.7 重构与性能

重构虽然会使系统运行变慢,但是却使优化性能变得容易。

优化程序的方法:前期通过重构构造出设计良好的程序,后期优化阶段找出程序的瓶颈,并进行优化。

分享到:
评论

相关推荐

    软件工程中的软件设计与重构原则.pptx

    软件工程中的软件设计与重构原则.pptx

    软件重构技术(重构介绍、重构原则、代码的坏味道。。。)

    任何一个傻瓜都能写出计算机可以理解的程序,只有写出人类容易理解的程序才是优秀的程序员

    系统重构.pdf 侯捷

    系统重构 讲如何重构代码和系统 系统重构 讲如何重构代码和系统 系统重构 讲如何重构代码和系统 系统重构 讲如何重构代码和系统 系统重构 讲如何重构代码和系统

    重构-改善既有代码的设计(chm清晰版)

    章节二 重构原则 章节三 代码的坏味道 章节四 构筑测试体系 章节五 重构名录 章节六 重新组织你的函数 章节七 在对象之间搬移特性 章节八 重新组织数据 章节九 简化条件表达式 章节十 简化函数调用 章节十一 处理...

    重构-改善既有代码的设计 中文版.pdf

    第2章 重构原则 2.1 何谓重构 2.2 为何重构 2.3 何时重构 2.4 怎么对经理说 2.5 重构的难题 2.6 重构与设计 2.7 重构与性能 2.8 重构起源何处 第3章 代码的坏味道 3.1 Duplicated Code(重复的代码) 3.2 Long ...

    重构-改善既有代码的设计

    第2章 重构原则 53 第3章 代码的坏味道 75 第4章 构筑测试体系 89 第5章 重构列表 103 第6章 重新组织函数 109 第7章 在对象之间搬移特性 141 第8章 重新组织数据 169 第9章 简化条件表达式 237 第...

    重构-改善既有代码的设计(中文版)

    Chapter 2:Principles in Refactoring 重构原则   Defining Refactoring 何谓重构   Why Should You Refactor? 为何重构   When Should You Refactor? 何时重构   What Do I Tell My Manager? 怎样说服经理...

    重构:改善既有代码的设计.[美]Martin Fowler.epub【文字版手机格式】

    第2章 重构原则 2.1 何谓重构 2.2 为何重构 2.3 何时重构 2.4 怎么对经理说 2.5 重构的难题 2.6 重构与设计 2.7 重构与性能 2.8 重构起源何处 第3章 代码的坏味道 3.1 Duplicated Code(重复代码) 3.2 Long...

    重构:改善既有代码的设计(中文高清版)

    第2章 重构原则53 2.1 何谓重构53 2.2 为何重构55 2.3 何时重构57 2.4 怎么对经理说60 2.5 重构的难题62 2.6 重构与设计66 2.7 重构与性能69 2.8 重构起源何处71 第3章 代码的坏味道75 3.1 DuplicatedCode(重复...

    重构—改善既有代码的设计

    2、重构原则(PrinciplesinRefactoring) 3、代码的坏味道(BadSmellsinCode) 4、建立测试体系(BuildingTests) 5、重构名录(CatalogofRefactoring) 6、重构方法(Refactoring Method) 6、1重新...

    重构-改善既有代码的设计+中文版

    Chapter 2:Principles in Refactoring 重构原则   Defining Refactoring 何谓重构   Why Should You Refactor? 为何重构   When Should You Refactor? 何时重构   What Do I Tell My Manager? 怎样说服经理...

    重构:改善既有代码的设计(中文版).

    第2章 重构原则53 2.1 何谓重构53 2.2 为何重构55 2.3 何时重构57 2.4 怎么对经理说60 2.5 重构的难题62 2.6 重构与设计66 2.7 重构与性能69 2.8 重构起源何处71 第3章 代码的坏味道75 3.1 DuplicatedCode(重复...

    重构_改善既有代码的设计[高清版]中文版

    Chapter 2:Principles in Refactoring 重构原则   Defining Refactoring 何谓重构   Why Should You Refactor? 为何重构   When Should You Refactor? 何时重构   What Do I Tell My Manager? 怎样说服...

    《重构改善既有代码的设计(2010年版)》(Martin Fowler[美] 著,熊节 译)

    第2章 重构原则53 2.1 何谓重构53 2.2 为何重构55 2.3 何时重构57 2.4 怎么对经理说60 2.5 重构的难题62 2.6 重构与设计66 2.7 重构与性能69 2.8 重构起源何处71 第3章 代码的坏味道75 3.1 DuplicatedCode(重复代码...

    重构-改善既有代码的设计 中文版

    第2章 重构原则 2.1 何谓重构 2.2 为何重构 2.3 何时重构 2.4 怎么对经理说 2.5 重构的难题 2.6 重构与设计 2.7 重构与性能 2.8 重构起源何处 第3章 代码的坏味道 3.1 Duplicated Code(重复的代码) 3.2 Long ...

    重构_改善既有代码的设计

    第 2 章:重构原则(Principles in Refactoring) 第 3 章:代码的坏味道(Bad Smells in Code, by Kent Beck and Martin Fowler) 第 4 章:建立测试体系(Building Tests) 第 5 章:重构名录(Toward a ...

    代码重构方向原则指导

    代码重构方向原则指导.重构是一种对软件进行修改的行为,但它并不改变软件的功能特征,而是通过让软件程序更清晰,更简洁和更条理来改进软件的质量。代码重构之于软件,相当于结构修改之于散文。  重构是一种对软件...

    重构_改善既有代码的设计.pdf

    第2章 重构原则53 2.1 何谓重构53 2.2 为何重构55 2.3 何时重构57 2.4 怎么对经理说60 2.5 重构的难题62 2.6 重构与设计66 2.7 重构与性能69 2.8 重构起源何处71 第3章 代码的坏味道75 3.1 DuplicatedCode(重复代码...

Global site tag (gtag.js) - Google Analytics