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