最近 review 了一些代码,其中有一个函数的写法看着别扭,而且对应同学不太清楚还可以怎么优化。由于案例比较典型,值得分享一下。
本文给出对应的伪代码和自己的修改建议,并推荐可以提交代码质量的图书,以便能够帮助大家养成良好的编码风格。
public void doSomething(){
// 构造参数(后无空格)
// 调用二方服务(后无空格)
if(result.success && result.getXXXMap() != null && result.getXXXMap().get("aaa") != null){
// 执行一大段逻辑
}
}
存在的问题
修改意见
public void doSomething(xxx){
// 构造参数(后空格一行)
// 调用二方服务(后空格一行)
if(result.success ){
other();
}
}
// other 只是一个demo, 实操时命名符合意图
private void other(yyy){
Map<K,V> map = result.getXXXMap() ;
if( null == map && null == map.get("aaa")){
return;
}
// 执行业务逻辑
}
当然,如果有必要 前面的 result.success 也可以反向判断直接 return 。 这里的 “aaa” 只是一个举例,实际并不是简单的字符串,所以暂时不处理。 如果是普通字符串的话,建议定义为常量。
这样修改完毕可读性就提高了很多,代码非常清晰。
这个案例非常简单,希望能够帮助大家养成良好的代码风格,提高代码可读性,让读者看起来更清爽。
另外《代码精进之路 从码农到工匠》中有提到【写代码是两次创作】
优雅的代码很少是一次形成的,大部分情况下要经过两次创造:第一遍实现功能,第二遍重构优化。
因此,实现功能以后,在代码审查阶段,如果有时间建议尽量对代码进行优化。