文档章节

《重构-改善既有代码的设计》读书笔记

我是菜鸟我骄傲
 我是菜鸟我骄傲
发布于 2016/04/03 08:17
字数 383
阅读 69
收藏 0

  在阅读这本书之前,我理解的重构是调整代码,让代码更加容易阅读。在我跟我同事的沟通中重构还包含了扩展功能的部分。

  现在看来,我所理解的重构混淆了升级的概念,也只是了解了重构最表层的东西。重构的真正定义是:在不改变软件(这里的软件通常指一个方法)可观察行为的前提下,调整其结构。

  什么是可观察行为?可观察行为是指使用软件所产生的结果。但是为什么要在不改变软件可观察行为的前提下,调整其结构呢?因为调整结构势必会改变代码的逻辑,既然逻辑都改变了又怎么保证你的重构没有问题呢。因此在不改变软件可观察行为的前提下,就是重构结果的测量标准。也只有在这个标准下,才能保证重构只是调整了软件的结构,而没有改变软件的可观察行为。

   那么怎么测量软件的可观察行为没有改变呢?答案是单元测试。以前所理解的单元测试只是测试代码的功能。其实单元测试最大的作用是保证重构前后软件可观察行为的一致(代码只会编写一次,但会重构无数次)。


© 著作权归作者所有

共有 人打赏支持
我是菜鸟我骄傲
粉丝 13
博文 224
码字总数 139926
作品 0
西安
架构师
私信 提问
[读书]读《重构-改善既有代码的设计》

读《重构-改善既有代码的设计》 断断续续,加上过年,花了快2个月吧,把《重构-改善既有代码的设计》读完了,这里总结下。 发现此书背景 读的感觉 知识感触 发现此书背景 这本书是从同事的桌...

zemel
2016/03/07
6
0
31 天重构学习笔记10. 提取方法

摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过...

技术小甜
2017/11/08
0
0
31 天重构学习笔记2. 移动方法

摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过...

技术小甜
2017/11/15
0
0
31 天重构学习笔记4. 降低方法

摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过...

技术小甜
2017/11/15
0
0
31 天重构学习笔记9. 提取接口

摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对31天重构最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过...

技术小甜
2017/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

11月NEO技术社区开发进展汇总

为了帮助大家了解NEO平台上技术社区的开发进展,NEONewsToday将每月发布一份值得关注的更新报告。这些报告将包括对NEO核心项目的贡献以及对社区创建项目的改进。 这个报告不是包括所有项目进...

NEO-FANS
9分钟前
0
0
flutter FlatButton有间隔

这个按钮上下会有空隙,不是铺满的

大灰狼wow
12分钟前
0
0
WiFi攻击的三种方式

WiFi的安全问题已经引起了不少的使用者重视,甚至已经出现草木皆兵的现象。那么黑客到底是如何做到绕过身份验证来获取WiFi使用权的呢?主要有以下三种方式,其中最后一种方式十分简单。 WiFi...

Linux就该这么学
13分钟前
1
0
添加并发

<!-- 认购线程池,支持最大并发送10 最大排队队列为一万--> <task:executor id="investBuyPool" pool-size="1-10" queue-capacity="10000"/> 方法添加注解@Async("investBuyPool")......

一夜
23分钟前
2
0
Gensim?

Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,支持流式训...

火力全開
36分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部