关于if else 的 code review

287 阅读1分钟

因为if else这个问题我和我们大佬(开发组组长)进行了辩论。

大佬: 你这代码改不动,可读性差,改个地方就报错。

我: 我改造改造,你就看得懂了。

然而,我改完大佬依然认为我的代码垃圾,大佬遂重构!

此文主要是讨论逻辑判断的问题,特别是if else逻辑。

大佬认为这种代码可读性差:

A代码


var Shell ={
    eventCommonConfig:{
        openWin:function (data) {
            //逻辑
            return data;
        },
    }
}

if(name in Shell.eventCommonConfig) {
    data = Shell.eventCommonConfig[name](data);
}

但是我认为大佬这种代码可读性也就不见得多好:

B代码

if(name == "openWin") {
    //逻辑
}else if(name == "page_ready"){
    //逻辑
}else{
    //逻辑
}

一般攻城狮的常规写法

C代码

switch (name) {
    case 'page_ready':
        //逻辑
        break;
    case 'openWin':
        //逻辑
        break;
    default:
        break;
}

ABC三种代码,笔者认为C便于阅读理解同时兼顾性能,而A代码可读性略差但性能还行。B代码我就不说了,大家自行理解[手动狗头]。