【晒出你的第83行代码】《阿里巴巴Java开发手册》主要作者孤尽晒出入职第一年的代码

前几天,在阿里巴巴的一个小黑屋里,5名对代码有着极致追求的程序员参与了阿里代码领域最高荣誉“多隆奖”最终角逐(多隆作为淘宝的第一代程序员,也是很多技术人心中的大神)。

那天代码评审现场,看到某代码片段最后结尾,多隆突然补上一句,往上翻看下第83行。代码一般都是几百行,他看到最后,居然还记得第83行的一个细微瑕疵,这得是对代码怀着怎样的敬畏之心。

五四青年节,作为70、80、90的码一代新青年,还记得你们最初写的那些代码吗?来晒晒属于你的“第83行”。

我们也邀请了业界的大牛、大神们来Review哦~你也可以点名邀请一些大牛来点评Review,最终将由网友和大牛评选出获得点赞和大牛评分最高的2位参与者,并由多隆在5月29日第二届研发效能嘉年华直播间颁发“多隆奖”。

收到我们的邀请之后,孤尽老师在第一时间响应并晒出了自己入职第一年写的一段代码:

这也是我入职第一年写的代码,这个代码虽然比较简单,但是还是有非常多的商榷之处的。大家看看有没有不符合《阿里巴巴JAVA开发手册》的部分?

78491801c383544db3a8d134c3ad4acd6cd0a5d8

 

尼古拉斯雷:手册中,建议将局部变量定义成基本数据类型。RPC方法的返回值和参数必须使用包装类型。

不知道这两条规范是否适合用在,孤尽老师的那些代码中?

孤尽 回复@尼古拉斯雷:

你看对了,的确是局部变量没有定义成基本数据类型。这其实是很大的坑,遇到自动解箱,大循环内就会非常慢。

尼古拉斯雷:我好像记得在规约中,建议将逻辑判断语句定义成一个变量?是这样吗?我在手册中找不到了。

孤尽回复@尼古拉斯雷:这个吗?

b10babbb06237b61528d0b825718b85f562203b9


微wx笑 回复@孤尽:就一个条件没必要了吧,声明一个变量不占内存空间?

 

尼古拉斯雷回复@孤尽:原来是复杂的逻辑需要定义!

 

尼古拉斯雷:手册中,建议将局部变量定义成基本数据类型。RPC方法的返回值和参数必须使用包装类型。

不知道这两条规范是否适合用在,孤尽老师的那些代码中?

 

孤尽回复@微wx笑:

嗯。我们的扫描规则上实现的是:https://github.com/alibaba/p3c出现 两个及以上的逻辑运算符,会提醒去定义出来了。至于占内存空间,忽略吧。

 

孤尽回复@尼古拉斯雷:

你看对了,的确是局部变量没有定义成基本数据类型。这其实是很大的坑,遇到自动解箱,大循环内就会非常慢。

 

尼古拉斯雷回复@孤尽:原来如此

 

孤尽老师简介:《阿里巴巴JAVA开发手册》的主要作者,在阿里巴巴集团历任研发、架构师、技术、主管等不同的角色,承担过双十一、国际化、代码中心等大型项目,有着丰富的一线编程经验,目前是研发协同平台Aone代码中心负责人,在大数据、高并发、研发效能领域均有较深的造诣。

 

下面我们也精心挑选了参加活动的十位同学的代码,也请大家来一同Review下,悄悄的说一声:优秀点评有小礼物拿哦!

21、@1289297105434890-我们的门店支付宝收银接口,83行是决定性的一个参数 :)https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.618.ae3b18a87eptAL&order=score&type=&p=2#answer-146960

22、@1126215720856796-我的83
https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.618.ae3b18a87eptAL&order=score&type=&p=2#answer-146865

23、@李沃晟-这是大二刚学Java,自己做的第一个管理系统,虽然是用Servlet实现的,但是这是我写的第一个比较完整的系统。掩面/
https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.618.ae3b18a87eptAL&order=score&type=&p=2#answer-146811

24、@云百万-matlab打出来的爱心的代码,向代码致敬 
https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.618.ae3b18a87eptAL&order=score&type=&p=2#answer-146787

25、@幸运兔-从大学时代起就比较注重代码书写规范,当初的汇编没有太多的约定,自己都会为每行代码加上注释,好处一看便知,现在转行Java之后多年,依旧能够快速理解那时代码逻辑。
https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.618.ae3b18a87eptAL&order=score&type=&p=2#answer-146572

26、@似水的流年-第一次独自写项目时候写的一个微信登陆接口,76行的判断用了魔法值,没有定义为常量~~~
https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.618.ae3b18a87eptAL&order=score&type=&p=2#answer-146541

27、@1172422055693247-我的83 https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.618.ae3b18a87eptAL&order=score&type=&p=2#answer-147175

28、@1399521533649486-我的83判断 
https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.618.ae3b18a87eptAL&order=score&type=&p=2#answer-147172

29、@江小白太白-我的83空格 
https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.198.656818a8RGBXar&order=score&type=&p=3#answer-147169

30、@1214042514913370-找了几篇代码居然83行全都是注释或者空白-.- https://yq.aliyun.com/roundtable/67516/?spm=a2c4e.11154000.rtdmain.198.656818a8RGBXar&order=score&type=&p=3#answer-147163

 

FAQ:

1.如何参与?

点击链接,前往评论。

2.有固定的格式吗?

没有,但请规范自己的评论用语

3.我也想晒出自己的代码,请大神点评怎么办?

简单,直接在活动下方回复你的代码,不过不能保证大神每个都能回复到

4.我想推荐我的同学朋友参加怎么办?

文章末尾有分享按钮,可以选择分享到微博(也可以这个时候只复制文章链接)

 

猜你喜欢

转载自yq.aliyun.com/articles/591280