首页 > 其他分享 >软件系统设计 - 代码优化 代码重构 - 正确的重构方式 与 重构手法列表

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

时间:2024-11-02 19:17:00浏览次数:7  
标签:重构 软件系统 代码 代码优化 内联 搬移 变量 函数

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

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

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

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

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

区别于“结构调整”

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

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

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

  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. 以函数调用

标签:重构,软件系统,代码,代码优化,内联,搬移,变量,函数
From: https://blog.csdn.net/shellinglin/article/details/143451715

相关文章

  • 「漏洞复现」F22服装管理软件系统 openfile.aspx 任意文件读取漏洞
    0x01 免责声明请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需......
  • 软件系统设计 - 如何评估代码质量
    先来看看非常知名且经验丰富的程序员是怎么看的在《代码整洁之道》一书中,作者Robert.C.Martin提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。提倡通过编写干净的代码,有效地提升代码质量。引出了大师们的关于......
  • SpringBoot3.0整合Mybatis-plus实现多数据源(重构类方式)
    背景前段时间在做一个数据中台的项目,系统用到了不同数据库中的数据。自己又不想手写JDBC连接,既然我有这个需求,那功能应该有人实现了,于是开始了网上搜了,搜索后发现基本都是讲读写分离、主备切换的,后面也查略了Mybatis-plus的官网,里面有这个功能,但好像是我组件的版本之间不兼容,导致......
  • GaussDB基于智能化(AI)技术,打造AI4DB和DB4AI两大技术高地,重构数据库内核核心组件,提升数
    云原生为迎接智能化提供了基础条件,智能化是GaussDB的新的牵引方向,两者相辅相成,互相促进。在智能化出现之前,数据库的运维管理主要依赖分层解耦、化繁为简方式来治理,通过人工服务对单点的业务进行管理。但在云化环境中,一个Region纳管上万实例,仅靠人工很难满足业务诉求,这就促成智能与......
  • IEEE33节点案例-计及风电出力不确定性的网架重构优化模型/配电网故障恢复重构(Matlab)
    随着能源转型的持续推进,以风电和光伏为首的新能源场站被大规模接入电力系统中,给电力系统安全防御体系带来了严峻挑战。分析电力系统发生大停电事故后的网架重构过程对减少由大停电事故带来的社会影响和经济损失有重要意义。计及风电出力的网架重构优化模型必须考虑风电场和......
  • 为什么需要证件管理软件系统?建筑企业证照管理系统有什么特点?
    大多数企业在投标过程中面临一些普遍的问题:每次准备投标时,都需要耗费大量时间和精力来重新整合所有相关资质文件,包括企业资质、项目案例、投标人员证书、奖项和各类认证。而且,常常在临近投标时,才发现某些资质已经过期或存在缺失,导致关键时刻措手不及。此外,由于缺乏有效的管理,......
  • 重构案例:将纯HTML/JS项目迁移到Webpack
    我们已经了解了许多关于Webpack的知识,但要完全熟练掌握它并非易事。一个很好的学习方法是通过实际项目练习。当我们对Webpack的配置有了足够的理解后,就可以尝试重构一些项目。本次我选择了一个纯HTML/JS的PC项目进行重构,项目位于GitHub上,非常感谢该项目的贡献者。重构案例......
  • 重构大师-四-
    重构大师(四)原文:www.gongtongchu.cn引入参数对象原文:refactoringguru.cn/introduce-parameter-object问题您的方法中包含一组重复的参数。解决方案用一个对象替换这些参数。之前!引入参数对象-之前之后!引入参数对象-之后为什么重构相同的参数组常常在多个方法中出......
  • 重构大师-三-
    重构大师(三)原文:www.gongtongchu.cn用状态/策略替换类型代码原文:refactoringguru.cn/replace-type-code-with-state-strategy什么是类型代码?类型代码是指,当你不是使用单独的数据类型,而是有一组数字或字符串形成某个实体的允许值列表时。通常,这些特定的数字和字符串通过常量......
  • 重构大师-二-
    重构大师(二)原文:www.gongtongchu.cn移除对参数的赋值原文:refactoringguru.cn/remove-assignments-to-parameters问题一些值在方法体内被赋给参数。解决方案使用局部变量代替参数。之前intdiscount(intinputVal,intquantity){if(quantity>50){inputVa......