1. 聚能聊>
  2. 话题详情

Java开发者们,一起来聊聊大家的开发规约吧

timg_jpeg
新年伊始,阿里巴巴作为Java的重度用户,在Java领域摸爬打滚了十多年,经过这么多年的采坑经验,最终起草并总结了一份属于广大Javaer的开发者手册,其内容涵盖了编程规约,异常日志,MySQL规约,工程规约以及安全规约等,并在网上迅速传播起来(点击这里查看:https://yq.aliyun.com/articles/69327

您是否曾经因为

某哥们写的类名首字母没大写而抱怨

变量名是用下横杠分隔还是驼峰状而纠结

需要维护别人写的恶心代码而有想重构的冲动

甚至是

ThreadLocal没有及时清理而导致OutOfMemory或者更为严重的故障

HashMap的并发操作导致死循环的发生而吃尽了CPU

大量使用StringBuffer的操作而影响过性能(因为方法都被synchronized了)

......

好的经验背后都有不堪回首的历史,那大家在编码规范方面都有哪些好的经验或者踩过哪些坑呢?一起来畅聊吧,为Java社区贡献一份自己的力量。

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    淘公仔 x 4

  • 奖品二

    定制笔记本 x 2

  • 奖品三

    优酷VIP月卡 x 3

214个回答

1

刘永源 复制链接去分享

Java开发搞了4年了,今年是第5年。
越看这份手册,越觉得Java的语言魅力很大,为什么以前没发现呢?
因为在工作中(创业公司/外包/小公司)接触到的东东都是那个鬼样,看不懂,又没办法维护,两行的代码N行的注释。自己都觉得搞Java没意思想转行了。但是这份手册很好。
指明了代码的规范,给出了开发的经验(Long类型使用的时候L和l这类)。如果人人都能够把代码写的很好,很是规范,就会有更多的时间去研究怎么提升技术,提升性能,能让我们具有更多是思考意识。(一定要Java才能解决吗?能解决问题不是罪重要的吗?运维预警,错误监控等等做到位了吗)写好一个项目真的很不容易,如果还在为了一些“代码”太过于苦恼,那就真的没什么时间去提升了。

ps:附上同事的代码

entity.java
/**

  • 1:学习,2:复习,3:分享,4:邀请好友
    */

private Integer type;

entityService.java
if(type == 5){xxxx}

???? type==5 ???

黑人问号,type5是什么鬼

1

不要潜水 复制链接去分享

我的解决方法比较土,新人来的时候讲开发规范和发放规范文档,然后写代码,代码写完后提交我,我处我一一的指出问题,然后打回去改,改完后再提交,再改再提交,注:不经过审核项目再急也不允许上线,符合规范后才能上线,如此几次审核过后,开发习惯就养成了!

1

剑银 复制链接去分享

目前大二,也是学java ,学校课程很慢,好多东西都是自己学的,在代码规范方面也是不久前才开始重视的,看了阿里巴巴的规范手册,挺有用的,很多东西迎刃而解,说说我自己的嘛,当时有这个想法的时候,敲代码都会打开一个翻译网页,很多变量名,类名都翻译过来的(我英语不太好),还记得刚进大学的时候学c,变量名直接abcd……字母排着下去,当时还在质疑为什么变量名要取那么长,从最开始接触编程到现在也快两年了,存了很多代码,前不久返回去看的时候已经懵逼了,当时用拼音的还好点,很多东西真的看不下去了

1

johnney 复制链接去分享

从刚开始学java到现在,一直做的事就是代码规范化,别人很容易看的懂,自己也很容易维护。还记得大二的时候,老师让我看他的代码,当时我就一脸蒙,一个jsp文件足足1000多行(惊吓脸)这让我怎么看…
先不多说,先下载 哈哈 阿里出这个规范简直棒,以后还需要更规范的写代码(奋斗脸)
大学还剩最后一学期,也找到了目前来说理想的工作,奋斗吧少年!
我的电脑陪了我四年,虽然打开eclipse需要几分钟,但我还是坚强的用着!话说,还有电脑么🙈

1

acheng1314 复制链接去分享

说实话,作为一个从安卓自学转到java的码农,可能是安卓持续开发的习惯养成了,所以很多时候对数据格式规范看的更加重要,同时相对刚入行的学习来说,转方向的学习更加愉快,开源中国的java项目让我节省了很多时间,而且很重要的是大多数java老司机的行为习惯都是相似的,所以更多的时候对于业务完全没问题,但是更多的大型项目后端架构才是我的弱点。

更多的是学习别人成熟的项目的时候,大的化小,小的再拆,对此印证才能更好的理解学习运用。所以希望像我这样的菜鸟更多的能坚持学习,不管在哪,身健才能力行。
最后希望能有幸得到笔记本啦,我还差一个不错的移动办公设备。😁😁😁

1

dxisi 复制链接去分享

看懂自己写的代码,特别是测试的代码(初学的时候),简直
int djsjd=8464;
int asd=54;
你见过吗?如此规范的代码,我估计没人看得懂除了当时的我

1

hyu黄1115 复制链接去分享

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程

1

谢玉青 复制链接去分享

作为一个多元化工作者(说白点叫打杂)平面设计里看不惯那些杂乱无章的图层,电工非常头疼那一团如麻的线。无规律不成方圆,规范职业习惯确实是一个漫长的过程!所以我现在刚开始学,我朋友就说保持规范是很重要的!希望自己能学有所成!其实我也喜欢那笔记本的!

0

1721047759891099 复制链接去分享

在输出日志命名和位置的时候有啥技巧?

屏峰远望 回复

关于这一块在日志异常中有提到的。本手册虽然叫JAVA开发手册,但涉及日志、数据库、安全,是以一个JAVA开发者为中心视角来看需要的技术点知识是否完备。

评论
1

xujie80 复制链接去分享

开始学java,总感觉代码在些地方大写没什么意义,java定的规则没办法,自己写的就天马行空,想到哪写到哪。直到有一天需要改动帮一个学校写的程序,时间已经过去了半年,再拿起来感觉一头雾水,好多地方自己都不知道是怎么回事。没办法向师兄求救,师兄厉害了我的word,他居然能看出来。让我请他一顿酒,狠K了我,把他的代码给我看,跟我讲码规。以此为鉴,我再写代码郑重其事。现在再看我的代码,咦,一点也不用猜了。

1

1737787364326570 复制链接去分享

java.软件,在智能机出来前的的确确是个不错软件,直到智能产品一一出现,java.软件就不大用的上场了,或许这个也是该升级版本的时候了,跟诺基亚手机一样,实用但老化,已经跟不上现在这个时代了。

0

1223064156099469 复制链接去分享

屏峰远望 回复
评论
0

jiangew 复制链接去分享

很快会成为业界的规范。

1

索尔001 复制链接去分享

话说技术手册中12页concurrentashmap实现说明采用分段锁是1.7版本以前的吧,1.8已经变掉了,虽说不是大问题不过还是严谨点好
补充一句finally返回值会把方法体返回值覆盖掉以前的确没注意过受教了.

1

炫酷 复制链接去分享

类名首字母大写!类名首字母大写!!类名首字母大写!!!

0

郭伟伟 复制链接去分享

看不得代码里英文单词的变量名拼写错误

看不得java代码里不遵守驼峰命名的

看不得简单的逻辑写的绕来绕去的代码

虚胖程序员 回复

顶起

评论
0

effiu 复制链接去分享

我写的怎么没了

糯米烧麦 回复

是不是被管理员删了

评论
0

xuhaoranno13 复制链接去分享

java中一段有返回值的方法 有多处需要catch的异常 是每一小段catch住然后return 还是整个大方法catch住 只是不同的catch的exception进行处理然后统一return好呢?

虚胖程序员 回复

一个个catch那样可以精确定位到哪个异常。

评论
1

null。 复制链接去分享

曾经有段时间接手过一个项目,日志写的非常烂,不管发生什么异常都在日志里写“有异常发生”,甚至是异常信息都没有输出,调试起来非常麻烦,并且还几乎没有注释,后来因为维护比重写还要费劲所以直接重写了大部分代码

1

阿斯蒂芬999 复制链接去分享

最好把其中的一些格式化的规范,整理成eclipse的formatter , ctrl+shift+f就能项目组所有人保持相同格式。

11