重构-改善既有代码的设计(1)
1,建立可靠地测试环境
2,寻找要重构的代码(函数或者类)
一般为比较长的函数,或者逻辑混乱的类
3,重构后的函数要修改局部变量,增加程序的可读行
4,函数应该放在它所使用的数据的所属对象内;
(函数搬迁)
5,尽量剔除临时变量
6,不要在另一个对象的属性基础上运用switch语句,如果不得不使用,页应该在对象自己的数据上使用,而不是别人的数据上使用
7,将子类型和父类型进行继承操作,来实现多态操作(Movie提取三个子类)
8,将相同类型的不同部分以最小单位提取成类(Movie的price 提取成三个子类)
9,提取抽象类(Price)
什么时候重构?
为什么重构?
重构后的好处?
1,重复代码
①两个函数中有两处使用同一表达式---提炼函数,让这两个函数同时调用提炼出来的函数
②两个兄弟类中有两处使用同一表达式----将函数提炼到超类中,子类调用超类函数
2,代码过长
原则:每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途命名。我们可以对一组甚至短短一行代码做这件事,只要函数名能够表达其用途,我们就应该毫不犹豫的这么做
① 避免使用临时变量,因为这样做对程序的可读性得不到任何提升
②
③
3,如何确定该提炼哪一段代码呢?
① 以个很好的技巧是:寻找注释。
他们通常能指出代码用途和实现手法之间的语义距离..
如果代码前方有一行注释,就是在提醒你:可以将这段代码替换成一个函数。
而且可以在注释的基础上给这个函数命名。就算只有一行代码页应该这么做
②条件表达式和循环页是提炼的信号
循环可以和其内的代码提炼成一个独立的函数,
条件表达式可以使用分解条件来提取函数
4,过大的类
①单个类干的事情太多将带来灭亡。
转载于:https://www.cnblogs.com/anbylau2130/p/3359799.html
重构-改善既有代码的设计(1)相关推荐
- 重构—改善既有代码的设计
概述 1.1 参考资料 <重构-改善既有代码的设计>读后总结 <重构改善既有代码的设计> 22种代码的坏味道,一句话概括 1.2 何谓重构 首先要说明的是:视上下文不同,重构的 ...
- PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性
思维导图 索引: Ø Move Method(搬移函数) Ø Move Field (搬移值域) Ø Extract Class (提炼类) Ø Inline Class (将类内联化,就是把当前的类 ...
- 『重构--改善既有代码的设计』读书笔记----序
作为C++的程序员,我从大学就开始不间断的看书,看到如今上班,也始终坚持每天多多少少阅读技术文章,书看的很多,但很难有一本书,能让我去反复的翻阅.但唯独『重构--改善既有代码的设计』这本书让我重复看了 ...
- PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
介绍 承接上文的PHP 杂谈<重构-改善既有代码的设计>之 重新组织你的函数继续重构方面的内容. 这章主要针对数据的重构. 1.争论的声音--直接访问Field还是通过函数(Accesso ...
- 重构 改善既有代码的设计:代码的坏
以下内容来自<<重构 改善既有代码的设计>> 一.什么是重构 所谓重构(Refactoring)是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改以改进程序的内部结构 ...
- 《重构-改善既有代码的设计》-第1例:租赁影片(2)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 上接 重构-改善既有代码的设计-第1例:租赁影片(1) 2 运用多态取代与价格相关的条件逻辑 2 ...
- 《重构-改善既有代码的设计》-第1例:租赁影片(1)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 买了<重构 - 改善既有代码的设计 >一书,一直没有好好看,大致过了下也觉得只是有点点印 ...
- 实践提高《重构改善既有代码的设计第2版》PDF中文+PDF英文+对比分析
重构是编程的基础,是在不改变外部行为的前提下,有条不紊地改善代码.编程爱好者都知道,Martin Fowler 的<重构:改善既有代码的设计>已经成为全球有经验的程序员手中的利器,既可用来 ...
- 重构改善既有代码的设计(github源码)
refactoring improving the design of existing code(重构改善既有代码的设计) https://github.com/CoderDream/refacto ...
- 重构:改善既有代码的设计(软件开发的不朽经典)
重构:改善既有代码的设计(软件开发的不朽经典) 基本信息 作者: (美)Martin Fowler 译者: 熊节[同译者作品] 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:978 ...
最新文章
- LAMP+Postfix+Dovecot+Postfixadmin搭建邮件管理系统(四)
- Linux下SYN***原理与防范措施
- CRLF line terminators导致shell脚本报错:command not found
- python程序设计试卷_2013Python程序设计期末试卷A
- Nginx配置以及域名转发
- 从门外汉到 Go 圈网红技术博主的五年历程
- MyBatis多参数传递之混合方式——MyBatis学习笔记之十五
- Cocos2d-x动作CCAction
- 微信公众号全局返回码
- Python3.4中文手册chm,3.7中文手册HTML
- 平衡二叉树的插入与删除
- 图像滤镜艺术---乐高像素拼图特效
- 有关凸集的证明例题_凸集/凸函数习题
- html超链接的锚点链接的使用
- 【离散】如何利用顶点数求树叶或知树叶求顶点
- #6.4四维理论的预测环节
- C#实现SQL数据库备份与恢复
- 0035-量化第六天:QMT—板块收益排序后选取收益最高成分股
- 前端程序员常用的9大构建工具
- Matlab替换wrfinput数据,WRF模式之个例模拟