摘要: 向代码致敬,寻找你的第83行 前几天,在阿里巴巴的一个小黑屋里,5名对代码有着极致追求的程序员参与了阿里代码领域最高荣誉“多隆奖”最终角逐(多隆作为淘宝的第一代程序员,也是很多技术人心中的大神)。
前几天,在阿里巴巴的一个小黑屋里,5名对代码有着极致追求的程序员参与了阿里代码领域最高荣誉“多隆奖”最终角逐(多隆作为淘宝的第一代程序员,也是很多技术人心中的大神)。
那天代码评审现场,看到某代码片段最后结尾,多隆突然补上一句,往上翻看下第83行。代码一般都是几百行,他看到最后,居然还记得第83行的一个细微瑕疵,这得是对代码怀着怎样的敬畏之心。
五四青年节,作为70、80、90的码一代新青年,还记得你们最初写的那些代码吗?来晒晒属于你的“第83行”。
我们也邀请了业界的大牛、大神们来Review哦~你也可以点名邀请一些大牛来点评Review,最终将由网友和大牛评选出获得点赞和大牛评分最高的2位参与者,并由多隆在5月29日第二届研发效能嘉年华直播间颁发“多隆奖”。
收到我们的邀请之后,孤尽老师在第一时间响应并晒出了自己入职第一年写的一段代码:
这也是我入职第一年写的代码,这个代码虽然比较简单,但是还是有非常多的商榷之处的。大家看看有没有不符合《阿里巴巴JAVA开发手册》的部分?
尼古拉斯雷:手册中,建议将局部变量定义成基本数据类型。RPC方法的返回值和参数必须使用包装类型。
不知道这两条规范是否适合用在,孤尽老师的那些代码中?
孤尽 回复@尼古拉斯雷:
你看对了,的确是局部变量没有定义成基本数据类型。这其实是很大的坑,遇到自动解箱,大循环内就会非常慢。
尼古拉斯雷:我好像记得在规约中,建议将逻辑判断语句定义成一个变量?是这样吗?我在手册中找不到了。
孤尽回复@尼古拉斯雷:这个吗?
微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-我的83https://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
本文作者:古散
原文链接
本文为云栖社区原创内容,未经允许不得转载。