早上我喝一杯咖啡,开始了一天的工作。首先先review一下下属的代码,稍微看一下发现代码不太优雅(皱眉脸)。稍微总结一下各 位的错误吧,基本的业务代码都垒不好,整天满嘴高可用,高并发,真是醉了。刚刚喝进去的咖啡差点喷出来。
随便打开一个类,映入眼帘的是这样的代码
遍历一个Map,的所有key ,然后再根据key,去获取value的值。为什么不一次性直接获取value和key呢? 我露一手
List<LowerMap> keyList = null;
for(Map.Entry<String,List<LowerMap>> entry : resultProMap.entrySet()){
keyList = entry.getValue();
//其他的业务代码
}
这样直接获取entry,里面都有key和value,难道不香吗? 而且为什么吧keyList的申明放在循环里面,放外面就好了hie(闽南腔)
继续继续,姨,这代码好像有点问题,但又说不出来,哦哦,想起来了!大家看看
咱今儿,就不纠结那些驼峰啊什么的代码细节了,主要看代码本身。pagesizestr是string类型,前面两行主要是string转int.
如果按照这位同学写的,那就是转化为包装类之后再拆箱,因为我手抖点了一下源码
看看,是不是返回的Integer,整那么累干嘛,你直接用Integer.parseInt(),不就完了,这是的。
抿一口手摸咖啡,继续继续!
很多细节问题,不想一一贴出来,更多有意思的请看我的另外一篇博文 哈哈哈代码王者
还有很多问题,
声明的变量不用,idea都给你置灰了,为什么留着碍眼。
不用的包导进来干嘛, ctrl+alt+o 不会用?不会用学啊!
注释的僵尸代码又不用,删了又觉得可惜?
方法不要写的太长
空指针异常是首要防范的
方法签名中没有用到的参数就去掉咯
有异常的时候麻烦写一下日志,不要只是e.getprinttrace(),谢谢!!!
方法前请写上你的大名,让我知道这是谁写的,好跟你沟通交流,保证不打死你哦!!
请让代码自解释最好,自解释了就不要再多余地注释了
请不要写太多的魔法值,我真不知道你写的 “1".equals(type),中的“1”,代表啥,要么注释,要么写进常量类
logger.error(e.getMessage)是不会在日志中记录完成的堆栈信息的,只能打印这是个什么错误,error()方法有多个重载方法的
详情请看https://www.cnblogs.com/yanggb/p/10965857.html
搬砖也要有素养。
文末推荐一个code review插件 sonartlint
更多问题欢迎加群讨论:微信