最近社区有个很火的《向代码致敬,寻找你的第83行》的活动,缘起于前几天,在阿里巴巴的一个小黑屋里,5名对代码有着极致追求的程序员参与了阿里代码领域最高荣誉“多隆奖”最终角逐(多隆作为淘宝的第一代程序员,也是很多技术人心中的大神)。那天代码评审现场,看到某代码片段最后结尾,多隆突然补上一句,往上翻看下第83行。代码一般都是几百行,他看到最后,居然还记得第83行的一个细微瑕疵,这得是对代码怀着怎样的敬畏之心。
于是,在五四青年节之际,社区发起了来晒晒属于你的“第83行”的活动,活动中邀请业界的大牛、大神们来晒代码或者Review代码!本轮我们晒晒社区用户@尼古拉斯雷的代码故事,和以前比起来现在的代码进步太多了。
@尼古拉斯雷 晒出了如下代码:
最初的代码和现在的代码比起来,以前的代码就是垃圾,什么代码规范都是不存在的。
现在虽然写代码还是很垃圾,但是比以前要好很多,起码知道如何去优化这些代码啊!因为就是看了那个阿里巴巴的那个开发手册,然后就知道如何去优化这些代码,如何去规范的定义变量名之类的。还有就是对一些比较消耗性能的一些代码,进行优化。以前的代码就是说看起来感觉就是刚刚开始学写字的感觉,现在的写着代码,起码是有点模样了。
之前的代码片段:
ModelAndView view = new ModelAndView("cs/investUser/list");
if (moblie == null && username == null && idCard == null) {
return view;
}
String msg = "";
RowBounds bounds = new RowBounds(page, limit);
List<UserDetail> userDetailList = userDetailInfoService.getUserDetail(moblie, username, idCard, bounds);
if (CollectionUtils.isEmpty(userDetailList)) {
msg = "此用户不存在";
} else {
UserDetailInfo userDetailInfo = userDetailInfoService.getFullUserDetailInfo(userDetailList.get(0).getUserId() + "");
view.addObject("userDetailInfo", userDetailInfo);
}
return view
.addObject("moblie", moblie)
.addObject("username", username)
.addObject("idCard", idCard)
.addObject("msg", msg)
.addObject("userDetailList", userDetailList);
现在的代码片段:
对我来说如何更好地去写好代码,去优化代码是很重要的事。
也一直就想让有着代码洁癖的大牛看一下了!请评论一下这段代码有什么不足之处,有什么改进之处!谢谢!!
对此,围观的大家也给出了自己的代码修改意见:
@浮生递归:username应写成userName
@尼古拉斯雷回复@浮生递归:确实,这个没注意。就应该要关注细节。
@浮生递归回复@尼古拉斯雷:其实是个习惯问题。我也是看了阿里的JAVA规范后才养成这个习惯。习惯了之后,不这么写就难受,哈。
@孤尽:get(0),会不会留坑。
@尼古拉斯雷回复@孤尽:哈哈,确实需要改进。写代码也是一种艺术,一种优雅的艺术。
@浮生递归:你用了这么多时间写注释,还会有时间改bug吗?
@尼古拉斯雷回复@浮生递归:这个注释确实有点多,不过这个只是我发到blog上的一个实现注解式的Ioc的demo而已,为了让读者更容易看懂所以才写这么多注释。
@浮生递归回复@尼古拉斯雷:假注释,哈哈!
@尼古拉斯雷回复@浮生递归:平常写代码也经常写注释,不然别人看自己的代码就会出现看不懂看的时间长的情况。
@idcom:我第一个代码上的注释远远超过代码的数量,然而根本没到83行~
@星梦泪痕:尴尬的了,我的第83行刚好是个BUG,catch (Exception)。
想围观更多83行代码?各位快来点击:
https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.4.393518a8tcY4xr&order=score#answer-146875