`

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

阅读更多

 

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

1.      重构:在不改变软件可观察行为的前提下改善其内部结构。重构保持代码易读、易修改的关键,在写好代码之后改进它的设计。

2.      改编代码的名称——值得。好的代码应该清楚的表达出自己的功能,变量名称是代码清晰的关键(可以用查找替换工具修改)

3.      尽量去除临时变量

4.      重构的目的:使软件更容易理解和修改,适当提升性能,和设计互补(重构可以带来更多的简单设计,又不失灵活性。降低设计过程的难度,减轻了设计的压力)

5.      改进设计是一个重要的方向。提高代码质量的维度:改善设计、提升可读性、减少错误等。

6.      最常见的重构是添加新特性时。调试时重构是为了更好的可读性。代码走查也可以重构。

7.      坏味道:重复代码、过长的函数(越长越难理解、分解之)、过大的类、过长的参数列表、一个变多处变、过多的注释(说明代码写的不好)、

8.      重构的基本技巧:小步前进,频繁测试

9.      过长函数:把一段代码从长函数中提取出来放入一个单独的函数,让函数名来解释函数的用途。注释处、循环等都可以作为提炼点。最大的困难:处理局部变量,尽可能去掉临时变量。临时变量只读不修改的话作为参数传入函数。——》每个函数的粒度都很小,则每个函数复用的机会大。

10.  一个临时变量只简单赋值一次,则将赋值代码替换临时变量

11.  将复杂表达式的结果放入一个解释性临时变量、以明朝表明表达式用途

12.  某个临时变量赋值吵一次——》每次赋值,设定一个独立的对应的临时变量

13.  移除函数中对参数的赋值,以临时变量代之

14.  将函数本体替换为一个算法

15.  搬移函数:在函数最常引用的类中建立一个幼者类似行为的新函数——》将旧函数变成一个单纯的委托函数或旧函数完全移除

16.  提炼类:某个类做了2个类的事情——》将相关字段和函数提炼到新类

17.  将类内联化:一个类没做什么——》两个类合并

18.  Get/set间接访问变量好处:子类可以通过一个函数而改变获取数据的途径,直接访问好处:代码易读

19.  当一个数据提取后,和其他数据和行为一起时才有意义则封装进类

20.  以对象代替数组。数组中每个元素以对象的字段来表示。一个数组容纳了不同的对象,给用户带来麻烦

21.  简化表达式——从if……else中分别提炼函数(分解表达式)、合并返回值相同的表达式——》提炼成函数、合并重复代码(if……else中都有时)——》移植到表达式之外

22.  以多态取代表达式,每个表达式的分支放入一个子类内覆盖函数,将原函数声明为抽象函数

23.  简化函数调用——修改函数名——》解释函数用途;添加对象参数;移除不必要的参数;以一个对象取代多个参数;函数从未被其他类用到——》改为private;将构造函数改为工厂函数

24.  处理概括类关系:2个子类有同一字段——》移到超类;某函数在多个子类中有相同结果——》移到超类;

25.  某字段/函数只在某些子类中用——》移到子类;为2个类提炼新类,将共同的代码移到新类;子类和超类区别不大——》合并

26.  开发者不愿意重构原因:不知道如何重构;是一个额外的工作;有风险,可能破坏现有程序。

27.  重构是手段不是目的最大的障碍:没有工具支持

28.  小函数如同娇小可爱的人

29.  OO对象的全部要点是将数据和对数据的操作行为包装在一起

30.  代码走查:有助于在开发团队中传播知识;有助于让有经验的开发者将知识传播给欠缺经验的开发者,并帮助更多的人理解大型软件系统中更多的部分

31.  重写代码:代码基本不能工作

32.  重构代码:

(1)    改进软件设计:没有重构,程序设计会变质,再为短期目的或未完全理解整体设计前,就贸然修改代码,程序会失去自己的结构(代码结构的流失是累计的)

(2)    使软件更易理解:除了正确告诉计算机我要做什么外,还要告诉第23人看懂。重构帮助理解原本不太熟悉的代码

(3)    帮助找到BUG,写出更强健的代码

(4)    提高编程的速度(良好发的设计是快速开发的关键)

分享到:
评论

相关推荐

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

    重构——改善既有代码的设计,重构高效,可复用代码。

    Martin Fowler《重构——改善既有代码设计》(中文版)

    《重构——改善既有代码设计》是软件工程领域的一部经典著作,作者Martin Fowler,该书与《设计模式》被并称为软件工程的双雄。《重构》一书的主旨在于向读者展示重构的过程与方法,即通过一系列小的、有步骤的改变...

    《重构——改善既有代码的设计》第一个案例代码

    《重构——改善既有代码的设计》是Martin Fowler的经典著作,它为软件开发人员提供了一套系统化的重构技术,旨在提升代码质量、可读性和维护性。在这个案例中,我们聚焦于一个影片出租点的程序,通过逐步的重构过程...

    重构——改善既有代码的示例代码

    大部分取自《重构——改善既有代码》一书,部分取自其他书籍或者自编。 每一项重构对应一个package。 CodeRefactor 工程是重构前的代码 CodeRefactorExcise 是重构后的代码 里面的重构步骤与《重构》一书微有差异...

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

    《重构——改善既有代码的设计》是软件开发领域的一本经典著作,由马丁·福勒(Martin Fowler)撰写。这本书深入探讨了如何通过一系列微小、系统化的步骤来改进已有的代码结构,提升代码质量,同时保持软件功能的...

    [免费PDF高清]重构-改善既有代码的设计+中文版. 侯捷.熊节.rar

    《重构:改善既有代码的设计》是由马丁·福勒(Martin Fowler)所著的一本经典IT著作,中文版由侯捷和熊节翻译。这本书详细探讨了软件开发过程中的一个重要环节——重构,即在不改变软件外部行为的前提下,通过改进...

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

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

    重构——改善既有代码的设计 中文完整版

    晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求...《重构:改善既有代码的设计》提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。

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

    一直很喜欢重构这本书,但是由于自己记性不太好,书看过之后其中的方法总是记不住,于是想如果有电子版的重构书就好了,工作中遇到重构的问题可以随时打开查阅。在网上搜索了许久,发现重构这本书有英文chm版本的,...

Global site tag (gtag.js) - Google Analytics