重构 改善既有代码的设计(读书笔记一)

一、重构,第一个案例

二、重构原则

2.1定义:

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

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


2.2作用:

a.重构改进软件设计

b.重构使软件更容易理解

c.重构帮助找到bug

d.重构提高编程速度


2.3重构时间:事不过三,三则重构

a.添加功能时重构

b.修补错误时重构

c.复审代码时重构


2.4怎么对经理说:

“计算机科学是这样一门科学:它相信所有问题都可以通过增加一个间接层来解决。”


2.5重构的难题:

a.数据库:在对象模型和数据库模型之间插入一个分隔层,这就可以隔离两个模型各自的变化。

b.修改接口:让旧接口调用新接口,将旧接口标记为deprecated。不要过早发布接口,修改代码所有权政策,使重构更顺畅。

c.难以通过重构手法完成的设计改动:

d.何时不该重构,而是重写:重构之前,代码必须起码能够在大部分情况下正常运作。


2.6重构与设计:


2.7重构与性能:

三种编写快速软件的方法:

1.时间预算法

2.持续关注法

3.针对多次执行的代码进行优化


2.8重构起源何处


三、代码的坏味道

3.1 重复代码

3.2 过长函数

3.3 过大的类

3.4 过长参数列

3.5 发散式变化:一个类受多种变化的影响,将这种类拆分为多个类。

3.6 散弹式修改:一种变化引发多个类相应修改,将多个类组成一个类。

3.7 依恋情结

3.8 数据泥团

3.9 基本类型偏执

3.10 Switch Statements

3.11 平行继承体系

3.12 冗赘类

3.13 夸夸其谈未来性

3.14 令人迷惑的暂时字段

3.15 过度耦合的消息链

3.16 中间人

3.17 狎昵关系

3.18 异曲同工的类

3.19 不完美的类库

3.20 纯稚的数据类

3.21 被拒绝的遗赠

3.22 过多的注释


第4章 构筑测试体系

4.1 自测试代码的价值

4.2 Junit测试框架

4.3 添加更多测试


第5章 重构列表

5.1 重构的记录格式

名称

概要

动机

做法

范例


5.2 寻找引用点


5.3 这些重构手法有多熟练


第6章 重新组织函数

6.1 Extract Method 提炼函数









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值