您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

如何进行代码重构

时间:2020-08-11 11:40:58  来源:  作者:

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

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

  • 提炼函数

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

  1. 良好的命名:比如用户登录,写成ada(){}如果不写注释,还需要去看代码到底封装了神马东西,是不是想骂gou?写成userLogin(){}是不是一目了然?连注释都不用写了,还可以练习英语。
  2. 函数长度适中,功能独立:如果一个函数过长,不得不加上若干的注释说明,才能够让这个函数显得易读一些,都这样了还想逻辑清晰明了吗?我们应该避免出现超大函数,如果代码中有一段代码可以独立出来,那么最好把这个代码放进另外一个独立的函数中,这样做的优点:

1)有助于代码复用

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

 

  • 合并重复的条件片段

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

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

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

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

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

  • 合理使用循环

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

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


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

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


  • 尽量减少参数数量

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


  • 少用三目运算符

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


  • 合理使用链式调用

  • 适当地写注释

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

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

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

对比:

let resultData = show==1?:pagesList_1:pagesList_2 ;// 1: A类订单结果,其他值:B类订单结果

  • 用return退出多重循环

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



Tags:代码重构   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
作为一个程序员,大部分时候,如果不是一个人承包整个项目,那么有1/3的时间在写代码,1/3的时间在看别人写的代码,剩下的1/3的时间在摸鱼。那么如何提高摸鱼的时间?看别人写代码十分...【详细内容】
2020-08-11  Tags: 代码重构  点击:(49)  评论:(0)  加入收藏
▌简易百科推荐
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(1)  评论:(0)  加入收藏
程序是如何被执行的&emsp;&emsp;程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(9)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(19)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(23)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(24)  评论:(0)  加入收藏
一个项目的大部分API,测试用例在参数和参数值等信息会有很多相似的地方。我们可以复制API,复制用例来快速生成,然后做细微调整既可以满足我们的测试需求1.复制API:在菜单发布单...【详细内容】
2021-12-14  AutoMeter    Tags:AutoMeter   点击:(20)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条