如何进行代码重构

作为一个,大部分时候,如果不是一个人承包整个项目,那么有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可读性更高。

胜象大百科