文档章节

读《代码重构》一书小计

钟良
 钟良
发布于 2016/07/13 09:48
字数 487
阅读 164
收藏 1

通过阅读《代码重构》一书,让我了解的最重要的一点是“重构不同于优化”。在这之前,我的观念中,“重构”与“优化”是划等号的。不过通过这本书,我了解到他们做着完全不同的事情,甚至是对立的。

下面讲讲重构一书中对我当前有用的部分:

 

第一章:

    重构原则:去除临时变量

                          需要注释的地方都可以提取函数或方法(用函数名作为注释)

                          函数或方法名应该描述实现什么功能,而不是描述怎么实现

    对比:重构——使代码(对人)易读、易改、易复用

                 优化——提高代码性能(往往使代码难以理解)

    开发正常流程:增加新功能-》重构-》增加新功能-》重构……(一个正常的开发者,往往在这之间不断来回切换,间隔有时只有几分钟。要时刻知道自己当前是在增加新功能还是在重构)

第二章:

    重构作用:

                        重构改进软件设计——去除重复代码(代码维护变得简单)

                        重构使软件更易理解

                        重构帮助寻找bug(随着理解的加深,bug浮出水面)

                        重构提高编程速度(短期拖慢进度,提高的是后续的编程速度,达到整体的进度加快、速度提高。如果一个项目接近尾声,就不要使用重构,因为重构只会起到反作用)

第三章:

    自动测试:

                        一个开发人员,开发过程中,70%以上的时间是在做测试工作。这足以体现自动测试的重要性。

 

之后的8章讲的是在重构工具中使用的各种函数,对我来说是没有任何用处的,所以就没有看。

© 著作权归作者所有

共有 人打赏支持
钟良
粉丝 8
博文 76
码字总数 30027
作品 0
嘉兴
部门经理
加载中

评论(1)

佳炜
佳炜
666
数据库设计中常见的糟糕设计以及对应的改良。

大家知道有讲述数据库设计常见问题并给出相应解决方案的书籍或文章吗?求推荐啊。 前段时间看了《代码重构》一书,当时就有种被击中G点般的亢奋。因为里边提到很多我实际工作中提到的问题,并...

itwriter
2015/03/27
251
3
请教一个折扣金额分摊算法的问题

比如说购物车里面5个产品,每个产品会有单价、数量和小计金额,整单有一个额度不定的折扣金额,需要分摊到每个产品的单价中,现在需要写一个算法来分摊这个折扣金额。 例如:购物车有A和B这2...

情天
2017/01/10
688
6
Thoughtworks公司代码题目:收银机

需求描述 商店里进行购物结算时会使用收银机系统,这台收银机会在结算时根据客户的购物车中的商品和商店正在进行的优惠活动进行结算和打印购物清单。 已知商品信息包含:名称,数量单位,单价...

ricardohn
2016/03/06
441
0
Oracle ROLLUP和CUBE 用法

1、Oracle ROLLUP和CUBE 用法 Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。 如果是Group by ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行G...

Sandy_wu
2013/06/11
0
0
温故而知新之:IUS、IFS、IFFS

IFS: 索引全扫描这里要注意的一点就是不需要扫描所有branch的分支块,因为叶子块与叶子块之间有双向指针,所以找到最左边的叶子块,就可以依序扫描。所以这里可以有以下结论:1 索引键值是排...

lych528
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部