重构
「已注销」
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
重构-改善既有代码设计-重构原则(2)
神马是重构?从两方面来说: 一个是名词:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。 一个是动词:使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。 对重构的扩展: 1.重构的目的是使软件更容易被理解和修改。(注意和性能优化的区别,会使代码难以理解) 2.重构不会改变软件可观察行为--重构之后软件功能一如既往。 两顶帽子...原创 2018-11-19 21:03:21 · 427 阅读 · 0 评论 -
重构-改善既有的代码设计(10-2)
10.11.隐藏函数(Hide Method) 10.12.以工厂函数取代构造函数(Replace Constructor with Factory Method) 10.13.封装向下转型(Encapsulate Downcast) 10.14.以异常取代错误码(Replace Error Code with Exception) ...原创 2018-12-03 17:34:14 · 347 阅读 · 0 评论 -
重构-改善既有的代码设计-简化函数调用(10-1)
10.1.函数改名(Rename Method) 10.2.添加参数(Add Parameter) 10.3.移除参数(Remove Parameter) 10.4.将查询函数和修改函数分离 10.5.令函数携带参数(Parameterize Method) 10.6.以明确函数取代参数(Replace ...原创 2018-12-03 17:02:31 · 269 阅读 · 0 评论 -
重构-改善既有的代码设计-大型重构(12)
12.1梳理并分解继承体系(Tease Apart Inheritance) 12.2.将过程设计转化为对象设计(Convert Procedural Design to Objects) 12.3.将领域和表述/显示分离(Separate Domain from Presentation) ...原创 2018-12-08 19:48:40 · 256 阅读 · 0 评论 -
重构-改善既有的代码设计-处理概括关系(11-2)
11.6.提炼子类(Extract Subclass) type Employee struct { _rate int } func (e *Employee) getRate() int { return e._rate } type JobItem struct { _quantity int } func (j *JobItem) ge...原创 2018-12-08 17:24:00 · 319 阅读 · 0 评论 -
重构-改善既有的代码设计-简化条件表达式(9)
9.1.分解条件表达式(Decompose Conditional) 9.2.合并条件表达式(Consolidate Conditional Expression) 9.3.合成重复的条件片段(Consolidate Duplicate Conditional Fragments) 9.4.移除控制标记(Remove Control Flag) ...原创 2018-12-03 12:20:09 · 270 阅读 · 0 评论 -
重构-改善既有的代码设计-重新组织数据(8-2)
8.7.将单向关联改为双向关联(Change Unidirectional Association to Bidirectional) 8.8.将双向关联改为单向关联(Change Bidirectional Association to Unidirectional) 8.9.以字面常量取代魔法数(Replace Magic Num...原创 2018-11-30 18:20:51 · 267 阅读 · 0 评论 -
重构-改善既有的代码设计-重新组织数据(8-1)
8.1.自封装字段(Self Encapsulate Field) 8.2.以对象取代数据值(Replace Data Value with Object) 8.3.将值对象改为引用对象(Change Value to Reference) 8.4.将引用对象改为值对象(Change Refere...原创 2018-11-30 15:13:41 · 354 阅读 · 0 评论 -
重构-改善既有的代码设计-在对象之间搬移特性(7)
在对象之间编译特性 7.1搬移函数(Move Method) 7.2搬移字段(Move Field) 7.4.提炼类(Extract Class) 7.4.将类内联化(Inline Class) 7.5.隐藏“委托关系”(Hide Delegate) 7.6.移除中间人(Re...原创 2018-11-30 10:56:27 · 285 阅读 · 0 评论 -
重构-改善既有的代码设计-重新组织函数(6-2)
6.6.分解临时变量(Split Temporary Variable) 6.7.移除对参数的赋值(Remove Assignments to Parameter) 6.8.以函数对象取代函数(Replace Method with Method Object) 6.9.替换算法(Substitute Algorithm) ...原创 2018-11-29 18:03:16 · 389 阅读 · 0 评论 -
重构-改善既有的代码设计-重新组织函数(6-1)
6.1.提炼函数(Extract Mothod) 动机:长度不是问题,关键在于函数名称和函数本体之间的语义距离。如果提炼可以强化代码的清晰度,那就去做,就算函数名称比提炼出来的代码还长也无所谓。但如果你想不出一个更有意义的名字,就别动。 6.2.内联函数(Inline Method) 6.3.内联临时变量(Inline Temp) 6.4.以查询取代临时变量(Rep...原创 2018-11-29 17:21:16 · 292 阅读 · 0 评论 -
重构-改善既有的代码设计-重构列表(5)
1.重构的记录格式,分为五个部分 1.名称 2.简短概要 三部分 1.一句话介绍这个重构能够帮助解决的问题,2.一段简短陈述,介绍你应该做的事,3.一副速写图,简单展现重构前后示例 3.动机 4.做法 5.范例 2.寻找引用点: 不要盲目查找替换,应该仔细检查每一个引用点,确定它的确指向你想要替换的东西。 借助强类型编译器或者文本查找工具。 3.这些重构手法有多成熟 重构...原创 2018-11-29 16:23:35 · 254 阅读 · 0 评论 -
重构-改善代码的既有设计-构筑测试体系(4)
本篇主要突出构筑测试体系的重要性: 1.自测试代码的价值: 确保所有的测试都完全自动化,让它们自己检查自己的测试结果。 一套测试就是一个强大的Bug侦测器,能够大大缩减查找Bug所需的时间。 2.JUnit测试框架: 本书采用的是Java的测试框架JUnit,由于在下使用的语言是C++和Golang所以就不再赘述了。 C++的测试框架推荐使用Google Test框架。...原创 2018-11-29 15:25:31 · 438 阅读 · 0 评论 -
重构-改善代码的既有设计-代码的坏味道(3-2)
3.11.平行继承体系(Parallel Inheritance Hierarchies) 3.12.冗赘类(Lazy Class) 如果重构使得类的身价严重缩水,不再做那么多工作。或者,开发者事前规划了某些变化,并添加一个类来应付这些变化,但变化实际为发生。请删除这些类。 如果某些子类没有足够的工作,试试 Collapse Hierarchy.对于几乎没用的组件,你应该以Inline ...原创 2018-11-29 14:44:51 · 501 阅读 · 0 评论 -
重构-改善代码的既有设计-代码的坏味道(3-1)
3.1.重复代码(Duplicated Code) Extract Method, Form Template Method,Substitute Algorithm,Extract Class. 同一个类的两个函数含有相同的表达式,这时只需要从用Extract Method提炼出重复的代码,然后让这两个地点都调用被提炼出来的那一段代码。 两个互为兄弟的子类内含有相同表达式。要避免这种情况,...原创 2018-11-29 11:29:50 · 274 阅读 · 0 评论 -
重构-改善既有的代码设计-总结
第十二章大型重构 第十三章重构,复用和现实 第十四章重构工具 第十五章总结 通过最后的四章 作者将为什么重构和重构工具重新阐述了一遍。但并没有实际的重构技巧,所以这里不再赘述。 同时,作者强调看完这本书才只是打开了重构的大门,并不是就已经功德圆满了。 同时作者让我们在一重构的节奏,重构的技巧就像是音乐中的音符,但是具体能谱写出什么样的旋律还是要看开发者个人自己,最后我的重构技巧暂时就准...原创 2018-12-09 17:15:15 · 320 阅读 · 0 评论
分享