软件系统设计 - 代码优化 代码重构 - 正确的重构方式 与 重构手法列表

正确的重构方式:不会引入错误并有条不紊地改进程序结构

熟练掌握众多重构手法,将思辨与实践结合,迭代持续开展重构工作。

运用大量微小且保持软件行为的重构步骤,一步步达成大规模的修改。

在开始重构前,我们需要先通读代码,并尝试理解代码如何工作,然后通过重构将这些理解从脑海里搬回到代码中。基于已经更为清晰的代码,我们更容易理解和发现更深层次的设计问题,从而形成积极正向的反馈环。

通过小且简单的重构步伐,并且每一步都保证代码处于编译通过和测试通过的可工作状态,有条不稳地以可控、高效、有序的方式进行重构,并保持代码永远处于可工作状态。

区别于“结构调整”

如果有人说他们的代码在重构过程中有一两天时间不可用,基本上可以确定,他们在做的不是重构,而是“结构调整”。结构调整:泛指对代码库进行的各种形式的重新组织或清理。

重构也属于结构调整,但是特定的一类结构调整。

常用重构手法列表,按频率高到低排列

  1. 提炼函数
  2. 提炼变量
  3. 内联函数
  4. 内联变量
  5. 改变函数声明
  6. 变量改名
  7. 封装变量
  8. 引入参数对象
  9. 函数组合成类
  10. 函数组合成变换
  11. 拆分阶段
  12. 封装记录
  13. 封装集合
  14. 以对象取代基本类型
  15. 以查询取代临时变量
  16. 提炼类
  17. 内联类
  18. 隐藏委托关系
  19. 移除中间人
  20. 替换算法
  21. 搬移函数
  22. 搬移字段
  23. 搬移语句到函数
  24. 搬移语句到调用者
  25. 以函数调用取代内联代码
  26. 拆分循环
  27. 以管道取代循环
  28. 移除死代码
  29. 拆分变量
  30. 以查询取代派生变量
  31. 将引用对象改为值对象
  32. 将值对象改为引用对象
  33. 分解条件表达式
  34. 合并条件表达式
  35. 以卫语句取代嵌套条件表达式
  36. 以多态取代条件表达式
  37. 引入特例(引入空对象)
  38. 引入断言
  39. 将查询函数和修改函数分离
  40. 函数参数化
  41. 移除标记参数
  42. 保持对象完整
  43. 以查询取代参数
  44. 以参数取代查询
  45. 移除设值函数
  46. 以工厂函数取代构造函数
  47. 以命令取代函数
  48. 以函数取代命令
  49. 函数上移
  50. 字段上移
  51. 构造函数本体上移
  52. 函数下移
  53. 字段下移
  54. 提炼超类
  55. 移除子类
  56. 折叠继承体系
  57. 以子类取代类型码
  58. 以委托取代子类
  59. 以委托取代超类

重点推荐重构必看的两本书籍

大师经典著作值得我们常伴左右,并学会敬畏代码工程,时刻警醒,写出好的代码、激励我们更好地设计需求的代码实现。

重构 改善既有代码的设计

代码整洁之道

其他相关书籍推荐:

代码大全2

人月神话(纪念典藏版)

设计模式:可复用面向对象软件的基础

Python测试驱动开发

如果还有具体问题可以进一步提问哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bufeng_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值