自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 7、大型重构

1、Tease Apart Inheritance(梳理并分解继承体系)      如果某个继承体系同时承担两项责任,则建立两个继承体系,并通过委托关系,让其中一个可以调用另一个。    2、Convert Procedural Design To Objects(将过程化设计转化为对象设计)      如果你手上有一些传统过程化风格的代码,则将数据记录变成对象,将大块的行

2016-04-06 12:49:18 1126

原创 6、处理概括关系

1、Pull Up Field(字段上移)      两个子类拥有相同的字段,则该字段移至超类。    2、Pull Up Method(函数上移)      有些函数,在各个子类中产生完全相同的结果,则将函数移至超类。    3、Pull Up Constructor Body(构造函数本体上移)      你在各个子类中拥有一些构造函数,但他们的本体几乎

2016-04-06 12:48:23 1075

原创 5、简化函数调用

1、Rename Method(函数改名)    2、Add Parameter (添加参数)    3、Remove Parameter(移除参数)    4、Separate Query from Modifier(将查询函数和修改函数分离)      某个函数即返回对象状态值,又修改对象状态,这样子的话,建议建立两个不同的函数,其中一个负责查询,另一个负责修改

2016-04-06 12:47:39 1094

原创 4、简化条件表达式

1、Decompose Conditional(分解条件表达式)      将if表达式抽离成函数,然后将if、else中的代码段提炼为各自独立的函数。    2、Consolidate Conditional Expression(合并条件表达式)      如果一系列条件测试都得到相同结果,那么将这些测试合并为一个条件表达式,并将这个条件表达式提炼为一个独立函数。

2016-04-06 12:46:34 1812

原创 3、在对象之间搬移特性

1、Move Method(搬移函数)      如果一个类有太多行为,或如果一个类与另一个类有太多合作而形成高度耦合,则考虑搬移函数。 这类函数有这种特点:使用另一个对象的次数比使用自己所驻对象的次数还多。    2、Move Field(搬移字段)      和搬移函数类似,某个字段被其所驻之外的另一个类类更多的用到,则考虑将该字段移到那个类中。    3、Ex

2016-04-06 12:45:41 957

原创 2、重新组织函数

1、Extract Method(提炼函数)      1、无局部变量      2、有局部变量        1、被提炼代码段只是读取变量的值,并不修改他们。          简单传给目标函数        2、被提炼代码段对局部变量再赋值          1、如果发现源函数的参数被赋值,使用Remove Assignments to Para

2016-04-06 12:44:14 919

原创 1、重新组织数据

1、Self Encapsulate Field(自封装字段)      在子类中需要修改父类的字段变化后的值时,考虑使用自封装,然后给get/set方法,其他情况可以直接使用访问值的形式。    2、Replace Data Value With Object(以对象取代数据值)      当原来的简单数据项不再表示简单的情况,比如要对他进行格式化输出等,则考虑将数据项变

2016-04-06 12:42:54 1489

原创 如何组织代码

1、重新组织数据    1、Self Encapsulate Field(自封装字段)      在子类中需要修改父类的字段变化后的值时,考虑使用自封装,然后给get/set方法,其他情况可以直接使用访问值的形式。    2、Replace Data Value With Object(以对象取代数据值)      当原来的简单数据项不再表示简单的情况,比如要对他进行格式化输出等,

2016-04-06 12:29:45 1458

原创 代码的坏味道

下面分类是我自己归纳的,如有不足之处,可以发评论,如果的确这样,我会尽快更新内容。  变量的坏现象    Data Clumps(数据泥团)    Primitive Obsession(基本类型偏执)    Speculative Generality (夸夸其谈未来性)    Temporary Field (令人迷惑的临时变量)  函数的坏味道    Long M

2016-04-06 12:24:07 1723

原创 3、重新组织代码

积极发现并抽取出与主目的不相关的子逻辑: 1、如果足够的行数在解决与主目的不相关的问题,则抽取相应的方法 2、每行代码都询问是否是直接为了目标而工作  将一般代码和函数主要目的代码分开, 步骤: 1、列出所有要做的功能 2、将任务拆分到不同函数  橡皮鸭技术: 1、像对着同事一样描述代码要做什么 2、注意描述中所用的关键字和短语 3、写出描述所匹配的代码  保持小的代码库: 1、创建越

2016-04-06 12:21:49 523

原创 2、简化逻辑和循环

1、简化逻辑    在if条件句中,将被询问的表达式放在左侧,右侧用来放置常量,比如 if(heigh > 10 )    在if中,一般以这种信息安排顺序: 1、可以快速判断需要退出控制流的 2、处理正确逻辑 3、处理简单情况 4、处理有趣的或者可疑的 5、采用设计模式  2、简化循环    建议使用while循环或者for, 尽可能的减少循环嵌套( 1、提早返回 2、抽取循环内

2016-04-06 12:20:24 842

原创 1、简明、清晰的展示

1、关于命名    总纲: 选择专业的词、避免泛泛而谈的词、用具体的名次来代替抽象的名词、 使用前缀或者后缀来附带信息(比如heght_m,高度以米来度量)、决定名字长度、 利用名字格式来表达含义    选择专业的词:比如常用的getPages()就不如用FetchPages()或者DownLoadPages()好,int size 就没有int heght好。 在循环迭代中,可以使用默认

2016-04-06 12:19:22 691

原创 清晰代码和代码重构大纲

最近学习Clean Code 和重构,做了笔记,打算做一个专栏。这个是第一章,算是大纲吧,后续有还有更新。清晰代码和代码重构  1、简明、清晰的展示  2、简化逻辑和循环  3、重新组织代码  4、可读性测试    使测试易于维护和阅读    让测试的错误信息更可读    选择好的测试输入:选择一组能完整的、简单的被测数据进行测试    当一个功能需要进行多项测

2016-04-06 12:18:03 830

简明代码和代码重构思维导图

clean code和重构的读书笔记,都是思维导图,方便记忆。

2016-04-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除