在提升自己技术水平每个人可能有不同的方式
看别人好的代码和自己多写代码是一个比较好的选择。
先来模拟一种场景比如
后端返回一个内容
然后我们需要根据返回的字段不同值进行显示内容
先看一段可能我们最容易会写的代码
var code = 0;
if(code == 0){
show("正确");
}else if(code == 1){
show("不正确,已过期")
}else if(code == 2){
......
}
因为这里只有单一的code的变化去显示内容
我们还可能会想到用以下的方式
switch(code){
case 0:
show("正确");
case 1
show("不正确,已过期");
......
}
这两种形式其实没什么太大的区别
我通常遇到这种情况的时候
是这样写的
var codeInfo = ["正确", "不正确,已过期" ......];
show(codeInfo[code])
如果返回的code没有对应的数组下标的话
申明变量的时候就改成对象的形式
var codeInfo = {
0 : "正确",
1 : "不正确,已过期"
......
}
如果比较复杂的情况
根据状态的不同,然后方法也不同,可以这样做
var codeFunc = {
0 : function(){
show("正确")
},
1 : function(){
alert("不正确,已过期")
}
......
}
codeFunc[code]();
之前写过一段非常复杂的逻辑,
复杂到难以想象那种。
总共十几种状态,每一种状态又是根据 不同字段组合而成的。
之前的代码都是 if else 做下来的
反正不去动它其实也不是说难以维护
但是总归就是看起来low。
重构的话就是按照上面那种思想去处理的。
可以稍微感受一下
我以前的后端领导跟我讲过
写代码就跟建管道一样
一条管道永远是最易维护的
所以我们要把预先不要的东西放到最上面
比如
if(abc){
func(...);
}else{
return;
}
if(!abc) return;
func(...);
这两种方式
在代码整洁和可读上面
我们都应该选择第二种形式
初期可能我们写的代码可能比较难看
如果时间允许的情况下,可以抽空去改一下之前的这种逻辑很复杂的代码。
或许会得到很多我们意想不到的满足感。
ps:早睡早起,常做运动,多与异性交朋友~