重构-改善既有代码的设计 (该书写于1999)培训之一

记住:尽信书不如无书

初章: UML 很重要,先用UML来画出类图,然后再设置,是一个很好的习惯。老外还喜欢用时序图,好正规!

如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。

重构的第一步 可靠的测试(非常重要)
每当我要进行重构的时候,第一个步骤永远相同:我得为即将修改的代码建立一组可靠的测试环境。这些测试是必要的,因为尽管遵循重构手法可以使我避免绝大多数引入bug的情形,但我毕竟是人,毕竟有可能犯错,所以我需要可靠的测试。
重构的第二步 分解大的函数

  1. switch语句变为独立函数
  2. 修改函数名字和变量名字
  3. 下一个步骤是找出程序中对于旧函数的所有引用点,并修改它们,让它们改用新函数
  4. 做完这些修改之后下一 件事就是去掉旧函数。编译器会告诉我是否我漏掉了什么。然后我进行测试,看看有没有破坏什么东西。有时候我会保留旧函数,让它调用新函数。如果旧函数是一.个public函数,而我又不想修改其他类的接口,这便是一种有用的手法。
  5. 尽量去掉临时变量?(不大同意)
  6. 重构要小步前进

重构原则

何时重构
三次法则
添加功能时重构
修改错误时重构
复审代码时重构

代码的坏味道

  1. 重复代码
  2. 过长函数
  3. 过大的类
  4. 过长参数列
  5. 发散式变化
  6. 散弹式修改
  7. switch语句

第四章 构筑测试体系

第五章 重构列表
第六章 重新组织函数
第七章 在对象之间搬移特性
第八章 重新组织数据
第九章 简化条件表达式
第十章 简化函数调用
第十一章 处理概括关系
第十二章 大型重构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值