《重构——改善既有代码的设计》
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) 使软件更易理解:除了正确告诉计算机我要做什么外,还要告诉第2、3人看懂。重构帮助理解原本不太熟悉的代码
(3) 帮助找到BUG,写出更强健的代码
(4) 提高编程的速度(良好发的设计是快速开发的关键)
相关推荐
重构——改善既有代码的设计,重构高效,可复用代码。
《重构——改善既有代码设计》是软件工程领域的一部经典著作,作者Martin Fowler,该书与《设计模式》被并称为软件工程的双雄。《重构》一书的主旨在于向读者展示重构的过程与方法,即通过一系列小的、有步骤的改变...
《重构——改善既有代码的设计》是Martin Fowler的经典著作,它为软件开发人员提供了一套系统化的重构技术,旨在提升代码质量、可读性和维护性。在这个案例中,我们聚焦于一个影片出租点的程序,通过逐步的重构过程...
大部分取自《重构——改善既有代码》一书,部分取自其他书籍或者自编。 每一项重构对应一个package。 CodeRefactor 工程是重构前的代码 CodeRefactorExcise 是重构后的代码 里面的重构步骤与《重构》一书微有差异...
《重构——改善既有代码的设计》是软件开发领域的一本经典著作,由马丁·福勒(Martin Fowler)撰写。这本书深入探讨了如何通过一系列微小、系统化的步骤来改进已有的代码结构,提升代码质量,同时保持软件功能的...
《重构:改善既有代码的设计》是由马丁·福勒(Martin Fowler)所著的一本经典IT著作,中文版由侯捷和熊节翻译。这本书详细探讨了软件开发过程中的一个重要环节——重构,即在不改变软件外部行为的前提下,通过改进...
重构——改善既有代码的设计 中文版pdf
晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求...《重构:改善既有代码的设计》提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。
一直很喜欢重构这本书,但是由于自己记性不太好,书看过之后其中的方法总是记不住,于是想如果有电子版的重构书就好了,工作中遇到重构的问题可以随时打开查阅。在网上搜索了许久,发现重构这本书有英文chm版本的,...