如何进行代码重构?

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

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

  • 提炼函数

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

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

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

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值为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可读性更高。
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值