下载此文档

重构--改善代码结构.pdf


文档分类:医学/心理学 | 页数:约20页 举报非法文档有奖
1/20
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/20 下载此文档
文档列表 文档介绍
重构:改善代码结构
数媒开发部技术沙龙
张云贵
设计 vs 编码
„ 设计无所谓,做出来就行
„ 理由:时间紧、没必要、太麻烦
„ 投入多人维护,程序员太辛苦
„ 先有良好的设计,而后才编码
„ 传统开发理论,良好的设计是编码的前提
„ 设计费力、赶不上变化、逐渐腐败变质
„ 重构—整理代码
„ 精简的设计Æ编码实现Æ设计改进
什么是重构
„ 重构≠伤筋动骨,重构≠推倒重来
„ 整理代码,在代码写好后改进它的设计
„ 设计不再是一 切动作的前提,而是在整
个开发中持续强化和保持良好的设计
为什么重构
„ 改善软件设计—不要以烂为烂
„ 使编码更易理解—代码是给人看的
„ 更易添加功能、有趣—你愿总遭罪吗
„ 更易发现和修复BUG
什么时候重构
„ 特拨时间、定期重构—为重构而重构
„ 三次法则
„ 添功能和改错时一 并重构
„ 试验完成后立即整理
„ 坚持随时随地小步重构,但不刻意美化
在哪里重构
„ 代码重复 „ 分支语句
„ 函数过长 „ 过度耦合链
„ 类太庞大 „ 基本类型迷恋
„ 条件逻辑太复杂 „ 不恰当的暴露
„ 纠缠不清 „ 注释过多
„ 解决方案蔓延
重构的策略
„ 按照重构准则,有目的地,每次一小步
的修改、测试、完善
„ 每次一 小步,不行就放弃
„ 重写的条件
„ 重构的成本远大于重写,预期效益 > 成本
„ 对原功能有充分的了解,并能更好的再现
„ 有足够的时间、人力,有人支持
重构与设计互补
„ 预先设计可降低重构成本
„ 重构减轻了预先设计的压力
„ 软件设计更加快速高效
„ 不再畏惧多变的需求
„ 开发方式各有千秋,可以权衡互补
重构的辅助工具
重构的辅助工具
重构的辅助工具
小结
„ 介绍了重构的基本话题
„ 下一节的内容:
„ 结合实际使用情况,介绍最常用的重构方法
重构的方法 (一)
„ 重新组织函数
„ 提炼函数
„ 提炼为函数对象
„ 合并相似代码
„ 替换为更清晰的算法
„ 使用堆栈对象简化善后处理
R1:提炼函数
„ 时机
„ 过长函数、多个步骤的复杂函数
„ 循环、条件分支、申请释放间有大量代码
„ 需要注释才能理解用途的代码
„ 存在可复用的相似代码,分离领域变化
„ 提炼到哪里
„ 局部扩展函数、私有成员函数、公共类
R2:提炼为函数对象
„ 做法
„ 将相关的多个变量、函数或复杂代码移到新
类中,改为调用新类对象的函数
„ 用途
„ 分离复杂代码
„ 适应变化需求,类可继续扩展
„ 为相似功能重用代码
R3:合并相似代码
„ 增加可选参数,支持附加功能
„ 增加相似接口,复用实现代码
„ 将相似语句改为模板函数
„ 将相似语句改为宏调用
„ 将相似功能移到同一个类
R4:替换为更清晰的算法
„ 同样功能不同算法时,统一算法
„ 尽量换成简洁易懂的算法
„ 多了解SDK,不要总是自己实现
R5:使用堆栈对象简化善后
„ 在析构函数中自动释放
„ 资源切换
„ 内存和句柄的释放
„ GDI对象选入/恢复
„ 自动锁定/解锁
„ 可用于所有这样的成对操作
„ 避免遗漏、重复、分隔
重构的方法 (二)
„ 重新组织数据
„ 封装数据
„ 改造全局变量
„ 以对象取代数据项
„ 自封装值域
„ 封装群集
„ 以数据类取代记录结构
„ 以符号常量取代魔法数
R6:改造全局变量
„ 将所有全局变量改为单实例对象
„ 测试分析各个变量的作用
„ 分拆变量到各个类
„ 在各个类中应用重构

重构--改善代码结构 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数20
  • 收藏数0 收藏
  • 顶次数0
  • 上传人陈潇睡不醒
  • 文件大小687 KB
  • 时间2021-03-17