码迷,mamicode.com
首页 > 其他好文 > 详细

[重构]读书笔记

时间:2017-09-22 19:12:23      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:分解   duplicate   field   rac   phi   霰弹式修改   修改   state模式   变化   

如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。

没个傻瓜都能够写出计算机能够理解的代码,但是唯有写出人类能够理解的代码的程序员,才是优秀的程序员。

第一章

重构步骤

1. 为即将修改的代码建立一组可靠的测试环境。测试机制再重构领域的地位很重要。

2. 分解并重组

  2.1 extract

  2.2 move

  2.3 replace temp with query

  2.4 State模式 Gang of four,一个对象

  2.5 Replace Type Code with State/Strategy

  2.6 Replace Conditional with Polymorphism

  2.7 Self Encapsulate Field

第二章 重构原则

重构的定义

1. 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

2. 使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。

何时重构

三次法则,事不过三,三则重构

3. 重构起源何处

small talk: https://zh.wikipedia.org/wiki/Smalltalk

Bill Opdyke,博士论文,重构领域具有相当高的价值。

第三章 代码的坏味道

坏味道条款

1. duplicate code

2. Long Method 

3. Large Class

4. Long Parameter List

5. Divergent Change 发散式变化, 如果某个类经常因为不同的原因在不同的方向上发生变化,divergent change就出现了。

6. Shotgun Surgery 霰弹式修改。如果每遇到某种变化,你就必须在许多不同的类内做出许多小修改,你所面临的坏味道就是shotgun surgery

7. Feature Envy 依恋情结,函数对某个类的兴趣高于对自己所处类的兴趣

8. Date Clumps 数据泥塘

 

第十四章 重构工具

重构工具的技术标准:

1. 程序数据库

2. 解析树

3. 准确性,由工具实现的重构,必须合理保持程序原有行为

重构工具的实用标准:

1. 速度

2. 撤销,重构保持了程序的行为,那么方向重构应该也能够保持程序的行为

3. 与其他工具集成

[重构]读书笔记

标签:分解   duplicate   field   rac   phi   霰弹式修改   修改   state模式   变化   

原文地址:http://www.cnblogs.com/hongdanning/p/7569955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!