《代码整洁之道》一书中说:当你的代码在做 Code Review 时,审查者要是愤怒地吼道:“What the fuck, is this shit?”、“Dude, What the fuck!”等言辞激烈的词语,那说明你写的代码是 Bad Code,如果审查者只是漫不经心的吐出几个:“What the fuck?”,那说明你写的是 Good Code。衡量代码质量的唯一标准就是每分钟骂出“WTF”的频率。
代码不规范会带来很多负面影响,比如团队之间如果代码不统一规范,对审查阅读都会不方便,后期的维护复杂度也会增加,降低团队效率。另外,不规范的代码可能在不小心中埋下bug,比如参数、异常处理、日志等不规范都会让你背锅。优雅的代码读起来让人赏心悦目、通俗易懂,对后期重构也大有帮助。比如如下一段代码,看的你感觉如何?
if(db.Next()) {
return true;
} else {
return false;
}
这段代码不是我为了文章而编出来的,而是在工作中经常看到,如果这段代码改成如下,效果显而易见。
return db.Next();
关于如何写出优雅的代码,我有以下看法:
1、代码格式化
如果不格式化,很多字符符号之间连空格都没有,好不容易看到一个空格确是连续三四个空格。格式化代码使阅读更加方便,后期修改代码更容易发现修改处。
记住:代码要格式化!
2、让判断条件做真正的选择
if ("0000".equals(retCode)) {
sendMsg("0000", "success", result);
} else {
sendMsg("0000", "fail", result);
}
如上一段代码,if/else里面调用的方法一样,真正不一样的仅仅一个参数,我们可以简单优化为如下格式:
String msg = "0000".equals(retCode) ? "success" : "fail";
sendMsg("0000", msg, result);
这段代码中,条件判断真正有影响的区别是获取消息内容,而不是发送消息方法,所以我们要让判断条件条件做真正的选择,将获取消息内容和发送消息方法分开。
这样消除了代码中的冗余,代码也更容易理解,同时未来也更容易扩展。如果未来retCode变量有更多的值返回需要判断,我们只需要调整消息获取相关代码即可,这种情况下封装一下消息获取的相关代码更好,如下:
<