文档章节

读《代码重构》一书小计

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

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

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

 

第一章:

    重构原则:去除临时变量

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

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

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

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

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

第二章:

    重构作用:

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

                        重构使软件更易理解

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

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

第三章:

    自动测试:

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

 

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

© 著作权归作者所有

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

评论(1)

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

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

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

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

情天
2017/01/10
904
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
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL学习笔记之二

数据库的操作总结就是:增删改查(CURD),今天记录一下基础的检索查询工作。 检索MySQL 1.查询表中所有的记录 mysql> select * from apps;+----+------------+-----------------------+------...

凌宇之蓝
24分钟前
0
0
PaddlePaddle-GitHub的正确打开姿势

GitHub是一个面向开源及私有软件项目的托管平台、也是项目版本管理工具,会使用它是程序员入门的必备技能。PaddlePaddle也不例外,所有的源码及项目进展都在GitHub上开源公布。但对于刚入门写...

深度学习之路
24分钟前
1
0
最强NLP模型BERT可视化学习

摘要: 最强NLP模型谷歌BERT狂破11项纪录,全面超越人类,本文通过可视化带你直观了解它。 2018年是自然语言处理(Natural Language Processing, NLP)领域的转折点,一系列深度学习模型在智...

阿里云官方博客
32分钟前
1
0
导出功能

public void downloadD(HttpServletRequest request, HttpServletResponse res,String contractName, String contractPath) throws IOException {// FileAttach fileAttach = fileA......

卖星星的小矮人
35分钟前
1
0
gradle 打包可执行jar包

group 'android.com'version '1.0-SNAPSHOT'apply plugin: 'java'sourceCompatibility = 1.8repositories { mavenCentral()}jar { manifest { attributes ('Main-......

zdglf
47分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部