摘要: 5.1 重构的记录格式 名称 简短概要 动机 做法 范例 5.2 寻找引用点 编译器无法找到通过反射机制而得到的引用点 5.3 这些重构手法有多成熟。 重构的基本技巧-小步前进、频繁测试-已经得到多年的实践检验。 参考资料: 《重构-改善既有代码的设计》 阅读全文
posted @ 2020-07-19 22:19 diameter 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 4.1 自测试代码的价值 编写代码其实只占非常小的一部分。有些时间用来决定下一步干什么,另外一些时间花在设计上,最多的时间则是用来调试。 类应该包含它们自己的测试代码。 确保所有测试都完全自动化,让它们检查自己的测试结果。 一套测试就是一个强大的bug侦测器,能够大大缩减查找bug所需要的时间。 编 阅读全文
posted @ 2020-07-19 22:14 diameter 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 3.1 Duplicated Code(重复代码) 3.2 Long Method(过长函数) 让小函数容易理解的真正关键在于一个好名字。 每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途(而非实现手法)命名。 条件表达式和循环常常也是提炼的信号。 3.3 阅读全文
posted @ 2020-07-19 21:44 diameter 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 2.1 何谓重构 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。 使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。 添加新功能时,你不应该修改既有代码,只管添加新功能。重构时就不能再添加功能,只管改进程序结构。 2.2 为何重构 重构 阅读全文
posted @ 2020-07-19 20:05 diameter 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 算法: 1、堆的定义:当一棵二叉树的每个结点都大于等于它的两个子节点时,它被称为堆有序。 2、堆排序可以分为两个阶段。在堆的构造阶段中,我们将原始数组重新组织安排进一个堆中;然后在下沉排序阶段,我们从堆中按递减顺序取出所有元素并得到排序结果。 复杂度: 用下沉操作由N个元素构造堆只需少于2N次比较以 阅读全文
posted @ 2020-07-19 16:54 diameter 阅读(164) 评论(0) 推荐(0) 编辑