如何进行代码重构?

article/2025/8/14 20:03:15

作为一个程序员,大部分时候,如果不是一个人承包整个项目,那么有1/3的时间在写代码,1/3的时间在看别人写的代码,剩下的1/3的时间在摸鱼。

那么如何提高摸鱼的时间?看别人写代码十分头疼,分分钟想骂人,自己却又写得龙飞凤舞,接下来,来看看如何进行代码重构,来提升一下自己的大神气质。
在这里插入图片描述

  • 提炼函数

程序猿大部分时间都在与函数打交道,我们都希望看到前前前同事写的函数代码具有这样特点:

良好的命名:比如用户登录,写成ada(){}如果不写注释,还需要去看代码到底封装了神马东西,是不是想骂gou?写成userLogin(){}是不是一目了然?连注释都不用写了,还可以练习英语。

函数长度适中,功能独立:如果一个函数过长,不得不加上若干的注释说明,才能够让这个函数显得易读一些,都这样了还想逻辑清晰明了吗?我们应该避免出现超大函数,如果代码中有一段代码可以独立出来,那么最好把这个代码放进另外一个独立的函数中,这样做的优点:

1)有助于代码复用

2)独立出来的函数更容易被覆写,一个项目开发完了,可能会重复迭代,次数多了,自己都看不懂自己写的代码。
在这里插入图片描述

  • 合并重复的条件片段

如果处理链接上的页数跳转,当页数大于或者小于总页数的时候去首页,其他正常跳转:

if (currPage <= 0 || currPage > totalPages) {currPage = 0jump(currPage) // 跳转
} else {jump(currPage) // 跳转
}

可以把公共的部分独立出来:

if(currPage <=0 || currPage >totalPages){currPage = 0;
}
jump(currPage);// 跳转

在这里插入图片描述

  • 把条件分支语句提炼成函数

  • 合理使用循环
    在这里插入图片描述

  • 提前让函数退出代替嵌套条件分支

如果代码不满足当前设定的条件,那么对下面的代码不再感兴趣,那应该在不感兴趣的时候就提供出口,而不需要再继续执行下面大量的、对预期结果无用的代码。

  • 传递对象参数代替过长的参数列表

有时候一个函数可以接收多个参数,而参数的数量越多,函数越难理解和使用,这时候可以把参数放入一个对象内,然后把参数传入对象中使用。这样就不必关心参数的数量和顺序了,只要保证key不变就可以了。

  • 尽量减少参数数量

我们需要搞清楚设置为参数的变量的具体意义,当一个函数不需要参数就能够使用的时候,是深受开发者喜爱的。

  • 少用三目运算符

如果条件太多,目运算符就会变得沉重,这样修改起来也是很吃力的。

  • 合理使用链式调用

  • 适当地写注释

要写有什么用,而不是复述代码

如下,这样的注释是不是还不如不写:

/** 定义了一个变量,当show等于1的时候,fresultData值为pagesList_1,否则为:pagesList_2*/
let resultData = show == 1 ? pagesList_1 : pagesList_2

对比:

  // 1: A类订单结果,其他值:B类订单结果let resultData = show == 1 ? pagesList_1 : pagesList_2 
  • 用return退出多重循环

比如使用双重循环,内部循环达到某个临界值的时候跳出循环,这时候使用return比使用break可读性更高。
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/cERdR9YJ.shtml

相关文章

代码重构学习

一、代码重构是什么 用重构手法去重构代码 二、为什么需要代码重构 1.方便维护。为了在修改代码时&#xff0c;添加的地方有个切入点&#xff0c;减少bug。 2.有利于理解设计思想和代码。 三、代码重构怎么做&#xff08;养成习惯&#xff09; 思想&#xff1a; 1.修改一…

代码重构技巧:如何将烂代码变成好代码?

这是本文的目录 前言重构入门1. 格式化代码2. 注释3. 废弃的代码4. 变量命名5. 常量命名6. 负值条件的重构7. {} 作为单独的一行8. 变量定义和使用距离太远 重构进阶1. 重复代码2. 函数参数3. 变量多余4. 缺少变量5. 复杂条件 老旧代码的重构利用工具总 结零基础Python学习资源…

代码重构新手教程:如何将烂代码变成好代码?

作者 &#xff5c; 王莉敏 策划 &#xff5c; 蔡芳芳 作为有几年工作经验的程序员&#xff0c;都会对 bad code 不满意。如何将烂代码变成好代码&#xff0c;本文将由浅入深、一步步带你理解重构的奥秘&#xff0c;让你对重构有个基本的了解。本文基于文章《The Simple Ways to…

常见代码重构技巧(非常实用)

你已选中了添加链接的内容点击上方“芋道源码”&#xff0c;选择“设为星标” 管她前浪&#xff0c;还是后浪&#xff1f; 能浪的浪&#xff0c;才是好浪&#xff01; 每天 8:55 更新文章&#xff0c;每天掉亿点点头发... 源码精品专栏 原创 | Java 2020 超神之路&#xff0c;…

hue执行workflow工作流出现直接FAILED

场景&#xff1a; 执行以下任务流的时候就出现了直接失败的情况 在第一次执行并且数据完善的情况下测试的&#xff0c;状态是成功的 但是第二次是在第一次基础上测试的&#xff0c;基础数据有所缺失 日志为&#xff1a; Failing Oozie Launcher, Main class [org.apache.oo…

Git Workflow工作流示意图

来自&#xff1a;http://blog.osteele.com/posts/2008/05/my-git-workflow UPDATE: git pretty 来自: http://justinhileman.info/article/git-pretty/full/ from: http://iccm.cc/git-workflow/

使用Python开源库Couler编写和提交Argo Workflow工作流

Python 是用户在 Kubernetes 上编写机器学习工作流的流行编程语言。 开箱即用时&#xff0c;Argo 并没有为 Python 提供一流的支持。相反&#xff0c;我们提供Java、Golang 和 Python API 客户端[1]。 但这对大多数用户来说还不够。许多用户需要一个抽象层来添加组件和特定于…

SharePoint 2013 Nintex Workflow 工作流帮助(八)

博客地址 http://blog.csdn.net/foxdave 工作流动作 15. Complete Workflow Task&#xff08;User interaction分组&#xff09; 此工作流动作将完成任何进行中的任务&#xff0c;它将处理足够的单独任务来达到选择的结果&#xff0c;接下来工作流引擎会依据工作流的设置处理…

工作流(Workflow) -- 实现简单工作流程

工作流(activiti) 工作流简介 业务过程的部分或整体在计算机应用环境下的自动化 工作流就是多个参与者,按照某种预定义的规则,传递业务信息,进行审核的功能一个框架(activiti) 核心 23张表 ACT_RE_*:RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源 (…

wf工作流java_WF Workflow 状态机工作流 开发

概述 工作流是对业务流程的建模&#xff0c;当我们设计工作流的时候&#xff0c;我们首先要分析业务处理过程中要经历的步骤。然后&#xff0c;我们就可以利用WF创建工作流模型来模拟业务的处理过程。 我们知道&#xff0c;WF包含两种类型的工作流&#xff1a;顺序工作流和状态…

Mendix 9.6 - Workflow(工作流)基础设计

一 概述 Workflow(工作流)是Mendix 9版本中新增的一种可视化语言功能模块&#xff0c;我们可以用它来构建可扩展的流程。此外它还与其他可视化语言完全集成&#xff0c;例如微流编辑器和页面编辑器。 在公司我们往往需要填写许多表单&#xff0c;包括行政、人事、IT等方面的&a…

workflow工作流(三):画流程图工具对比

一、总结 我所用过能画工作流的工具有2个&#xff1a;1.eclipse插件&#xff0c;2.flowable官方网页版&#xff0c;结论是eclipse插件好用&#xff0c;后者要上传下载&#xff0c;还容易丢数据 注意事项&#xff1a;eclipse插件画出来的bpmn文件的schama是activiti&#xff0…

Bladex Workflow工作流引擎开发进阶-版本v1.2.2

Bladex Workflow工作流引擎开发进阶 1 Bladex Workflow简介2 Flowable简介3 workflow部署和配置-参考文档《BladeX插件 - Blade-flow使用帮助文档 》4 配置任务监听4.1 问题&#xff1a;监听类注入不了service 5 配置事件监听6 复杂表单-配置外部表单&#xff08;不建议配置超大…

workflow工作流(二):34张表

1.常用的表 2.总共34张表 Activiti的后台是有数据库的支持&#xff0c;所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。 ACT_RE_*: RE表示repository。 这个前缀的表包含了流程定义和流程静态资源 &#xff08;图片&#xff0c;规则&…

SAP Workflow 工作流开发步骤总结

一、配置 SWU3 设置管理员 二、新建业务对象 查看我们需要增强的业务对象&#xff0c;比如我们项目上用的是BUS2000114&#xff0c;一般我们工作流的触发 是用单据状态的改变来触发&#xff0c;这就需要我们增强业务对象 使用SWO1 新建一个业务对象 继承上面的标准对象 注意…

小小研究一下工作流WorkFlow

修房子 在小牧老家农村,小时候总是看到村里有人在修房子。每次看到有人修房子的时候,他就会爬到房子面前的沙粒堆上去,翻找随着沙子一起被挖出来的贝壳。虽然也不知道拿来干嘛,不过总觉得收集贝壳很好玩。 小牧也喜欢看他们修房子。修房子的时候,专业的修房师傅会指导工…

微软 workflow 工作流总结

1.状态机工作流 (1)状态机工作流从state1 流转到 state2 到stateN (2) state中有执行状态和退出状态 (3) 在进入下一个步骤(state1 到 state2)前,首先会判断进入下一个状态的条件,下面我把它叫做判断模块 (4)在判断模块中,有三个生命周期:Trigger,Condition,Action (5)判断模…

WorkFlow工作流

工作流 一、什么是工作流 历史发展&#xff1a; 工作流的理论起源于70年代中期办公的自动化领域。90年代。工作流技术的研究与开发进一步发展。1993年8月&#xff0c;成立第一个工作流技术标准话的工业组织WFMC&#xff08;工作流管理联盟&#xff09;。现在&#xff0c;工作…

工作流(Workflow)基本介绍

工作流简介 工作流&#xff08;Workflow&#xff09;&#xff0c;就是“业务过程的部分或整体在计算机应用环境下的自动化”&#xff0c;它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行&#xff0c;从而实现某个预期的业务目标&a…

Eclipse下配置主题颜色

对于长期做开发的哥们来说&#xff0c;过于明亮的背景色会导致视觉疲劳&#xff0c;从而致使效率各种下降、困意各种来袭。为了有效阻止这种可怕的事情发生&#xff0c;我们需要改变背景色&#xff01; OK&#xff0c;这篇博客主要讲解如何设置eclipse软件的背景色&#xff1a;…