会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
每天不加班
博客园
首页
新随笔
联系
订阅
管理
《读书笔记》重构-改善既有代码的设计(一)
《读书笔记》重构-改善既有代码的设计
1.
关于重构
1.1
什么是重构?
=》不改变外部可观察行为的前提下改善内部结构
1.2
什么时候重构?
1.添加功能时 2.修复Bug时 3.代码Review时
1.3
重构的好处
1.改善设计 2.增强可维护性 3.发现Bug
1.4
与性能的冲突
重构可能会有性能损耗,但它改善了设计使得软件的调整根据容易。 对性能上的问题可以用如下策略 1.时间预算法。对类似实时系统有极高要求的系统。对各个组件做出时间特性做出预算及控制 2.持续关注系统。统计相关数据 3.利用度量工具监控,运用统计数据找出瓶颈
2.
代码里的坏味道
2.1
重复代码,过长的函数,臃肿的类,有分布式影响的代码
=》剥离,抽取,独立
2.2
过长的参数表,对未来作出太多假设
=》不要试图写万能的函数或类
2.3
过分委托,过度耦合,过长消息链
=》砍掉Middle Man
2.4
临时变量,纯数据容器
=》Data和Operation一起
2.5
Switch,平行继承体系,类之间过于亲密
=》多态的优化
3.
重新组织函数
3.1
Extract Method(提炼函数)
=》改造代码段成小粒度函数,关键在于正确处理局部变量
3.2
Inline Method(内联函数)
=》找到有用的委托,清掉无用的委托,以实现代码来替换调用
3.3
Inline Temp
=》将变量替换为赋值的表达式
3.4
Replace Temp with Query(以查询代替临时变量)
3.5
Introduce Explaining Variable(引入解释性变量)
=》将复杂表达式的部分结果放到临时变量,并以清晰地命名来解释
3.6
Split Temporay Variable(分解临时变量)
=》非循环变量的临时变量建议不要被循环使用
3.7
Remove Assignments to Parameters(移除对参数的赋值)
=》这点我并不是很认同
3.8
Replace Method with Method Object(以函数对象取代函数)
=》如果是一个很Big的函数,这会是个好方法
3.9
Substitute Algorithm(替换算法)
=》修改你的代码,换成更为清晰地实现算法
4.
对象之间的迁移
5.
数据组织
6.
简化条件表达式,函数调用
7.
处理概括关系
8.
大型重构
posted @
2010-12-26 14:03
toxot
阅读(
240
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部
公告