书写优雅代码,避免代码的多层级嵌套

我们编写代码的时候,代码的性能很重要,代码的可维护性也很重要。毕竟代码不只是机器读,人也是要读的,而且你写的代码不可避免的要给别人看,所以可读性很重要。关于代码的可读性,有很多方面,比如注释、命名等,我们这次聊一聊代码嵌套。

先放个伪代码,看看比较糟糕的代码。

if (variable1 == "example") {
variable2 = someFunction(variable1);
if (variable2 == "exam") {
variable3 = someFunction(variable2);
if (variable3) {
for (idx in loop) {
if (idx == "name") {
return "killer";
}else if (idx == "address") {
return "BJ";
}else {
return "";
}
}
}
}
}

不能说这种代码功能或者性能上有什么问题,但是可读性真的很差,这种代码写起来很简单,读起来非常费劲,可能时间长点,自己都不知道什么逻辑。Linus曾经说过:如果你的代码里需要有超过三层的缩进,那么你已经搞砸了,应该修改你的代码。所以,我们应该优化上面的代码。

对于条件和循环语句,我们应该及时 return break continue,

对于简单的 switch ,可以使用hash表简化嵌套。

我们看下优化后的代码:

if (variable1 != "example"){
return;
}
variable2 = someFunction(variable1);
if (variable2 != "exam") {
return;
}
variable3 = someFunction(variable2);
if (!variable3){
return;
}
hash_table = {
"name": "killer",
"address": "BJ"
};
for (idx in loop) {
return idx in hash_table ? hash_table[idx] : "";
}

这样看就比较清晰了。