最近组内做代码评审,看到了如下一段代码,这段代码从功能上、甚至效率上来讲都没有问题,但从可读性和可维护性来讲,可优化的地方显而易见:函数‘foobar’接收‘op_type’为输入参数,该函数的调用完全可以放在整个switch之后,做一处调用即可,这样后期‘foobar’有任何变化,这段代码只需相应修改一处代码即可。

        这段代码出自一个有几年工作经验的程序员之手,实属不该 —— 即使一个编程初学者,也应该知道尽量“避免冗余代码”这一基本原则。

switch(op_type){
    case ADD:
        /*
        *Codes for ADD
        */
        foobar(ADD);
        break;
    }
    case MODIFY:
    {
        /*
        *Codes for MODIFY
        */
        foobar(MODIFY);
        break;
    }
    case DELETE:
    {
        /*
        *Codes for DELETE
        */
        foobar(DELETE);
        break;
    }
    default:
    {
        log("invalid op_type");
        return -1;
    }
}

更多推荐

编程基本原则 —— 避免冗余代码