最近组内做代码评审,看到了如下一段代码,这段代码从功能上、甚至效率上来讲都没有问题,但从可读性和可维护性来讲,可优化的地方一目了然:函数‘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;
}
}