03重构_改善既有代码的设计阅读笔记之三

这本书的主要特点为:

重构技术就是以微小的步伐修改程序,如果你犯下错误,很容易便可发现它。

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

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

重构(名词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。

事不过三,三则重构。

不要过早发布接口。请修改你的代码所有权政策,使重构更顺畅。

当你感觉需要撰写注释时,请先尝试重构,试着让所有注释都变得多余。

确保所有测试都完全自动化,让它们检查自己的测试结果。

一套测试就是一个强大的bug侦测器,能够大大缩减找bug所需要的时间。

频繁地运行测试。每次编译请把测试也考虑进去——每天至少执行每个测试一次。

每当你收到bug报告,请先写一个单元测试来暴露这只bug。

编写为臻完善的测试并实际运行,好过对完美测试的无尽等待。

考虑可能出错的边界条件,把测试火力集中在那儿

当事情被大家认为应该会出错时,别忘了检查是否抛出了预期的异常。

不要因为测试无法捕捉所有bug就不写测试,因为测试的确可以捕捉到大多数bug。

时间: 2024-08-04 02:23:57

03重构_改善既有代码的设计阅读笔记之三的相关文章

01重构_改善既有代码的设计阅读笔记之一

<重构_改善既有代码的设计>这本书介绍了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善,每个重构都介绍了一种经过验证的代码变换手法的动机和技术. 重构,绝对是写程序过程中最重要的事之一.在写程序之前我们不可能事先了解所有的需求,设计肯定会有考虑不周的地方,而且随着项目需求的修改,也有可能原来的设计已经被改得面目全非了.更何况,我们很少有机会从头到尾完成一个项目,基本上都是接手别人的代码,即使这个项目是从头参与的,也有可能接手其他组员的代码.我们都有过这样的经验,看到别人

02重构_改善既有代码的设计阅读笔记之二

这本书的核心是一份完整的重构名录,其中每一项都介绍一种经过实证的代码变换手法(code transformation)的动机和技术.某些项目如Extract Method和Move Field看起来可能很浅显,但不要掉以轻心,因为理解这类技术正是有条不紊地进行重构的关键.本书所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险.很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口. 书中的一些东西说得太绝对,比如说看到switch就重构,但这是不现实的,比如说

《重构:改善既有代码的设计》 笔记 1

重构(名词):对软件内部结构的一种调整.目的是在不改变「软件之可察行为」前提下,提高其可理解性,降低其修改成本. 如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地那么做,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性. 测试过程中很重要的一部分,就是测试程序对于结果的回报方式.它们要不说 "OK",表示所有新字符串都和参考字符串一样.要不就印出一份失败清单,显示问题字符串的出现行号.这些测试都属于自我检验self-checking).你必须让测试有能力自我

《重构_改善既有代码的设计》摘要(下)

第十章 简化函数调用1.Rename Method 函数改名:函数的名称未能揭示函数的用途.修改函数名称. 给函数命名的一个办法:首先考虑给函数写上怎样的注释,然后将注释转换成函数名.2.Add Parameter 添加参数:某个函数需要从调用端得到更多信息.为此函数添加一个对象参数,让该对象带进函数所需信息. 先要确定现有参数能否满足要求,如果不满足,为什么?要防止过长的参数队列.3.Remove Parameter 移除参数:函数本体不再需要某个参数.将该参数去除.4.Separate Qu

重构_改善既有代码的设计第一章重构例子

/** * */ package statedesignmodel; import java.util.Enumeration; import java.util.Vector; /** * @author Administrator * */ public class Customer { private String _name; private Vector<Rental> _rentals = new Vector<Rental>(); public Customer(St

《重构:改善既有代码的设计》 笔记 2

代码的坏味道: 1.Duplicated Method(重复代码) (1)同一个类的两个函数含有相同的表达式  用  Extract Method(110) (2)两个互为兄弟的子类内含相同表达式  两个类都用 Extract Method,然后对用Pull Up Method(332)推入超类 两个互为兄弟的子类内含类似表达式  两个类都用 Extract Method 将相似和差异部分隔开. 运用Form Template Method(345) 获得一个Template Method设计模

重构,改善既有代码的设计--第七章感悟

1.提炼类 某个类做了应该由两个类做的事,需要建立一个新的类,将相关的字段和函数从旧类搬到新类. 先搬较底层函数(就是给别人调用多过于调用别人的),再搬高层函数. 重构,改善既有代码的设计--第七章感悟,布布扣,bubuko.com

重构,改善既有代码的设计--第八章感悟

1.如果你看到一个数组的行为方式很像一个数据结构,就可以把数组变成对象 private int aa,变成:  int aa; public int GetAA() {return aa;}//好处:使得获取的数据更加有效 重构,改善既有代码的设计--第八章感悟,布布扣,bubuko.com

重构,改善既有代码的设计--总结篇

重构,改善既有代码的设计--第一章感悟 一.书中经典句子 1.重构之前,首先检查自己是否有一套可靠的测试机制.这些测试必须有自我检验能力. 2.面对长长的函数,需要分解,代码块越小越好管理. 二.自己总结的句子 1.修改长长的函数,找到变的参数和不变的参数,变的参数保留,不变的参数传入新函数. 2.重构的时候使用快捷键重构之后,需要检查方法里面的参数,参数如果是不变的值如a=1;,直接在方法里面去定义就行了,这样就省去了传值的过程,效率更高. 3.在重构函数之后,若函数的参数不属于当前类,并且函