解读《阿里巴巴Java开发手册》(泰山版) - 更新中

前言

《阿里巴巴Java开发手册》一直深受Java开发爱好者和业界人士的承认,里面提出了许多宝贵的开发经验和建议,相信会对你们有不少的帮助。数据库

可是所谓尽信书不如无书,须要对提到的规范有本身的思考和认同后,这本手册才可以对本身起到更大的帮助。编程

小弟不才,只是从我的观点谈谈对于这本手册阅读的理解,指望能够持续更新。数组

编程规约篇

命名风格

1.【强制】代码中的命名均不能如下划线或美圆符号开始,也不能如下划线或美圆符号结束。

赞同,能够强制遵照。首先实际代码开发时确实能够这样去作,但这条规范应该是业内同行的共识了,并且如下划线和美圆符号开始和结束并不会带来什么其余的好处。框架

2.【强制】全部编程相关的命名严禁使用拼音与英文混合的方式,更不容许直接使用中文的方式。

赞同,能够强制遵照。用纯英文表达释义更容易理解,拼音或者拼音与英文结合,还要考虑多音字的可能性,也不太好理解。函数

3.【强制】类名使用UpperCamelCase风格,但如下情形例外:DO/BO/DTO/VO/AO/ PO / UID 等。

赞同,能够强制遵照。驼峰式命名这个基本已是共识了,但关于DO,BO等,其实项目中有人喜欢写Bo,有人先写BO,我我的感受更倾向于两个都大写,这些实际上是一些专用术语的缩写,因此都大写是比较合适的,好比DTO,实际上是 Data Transfer Object的缩写。测试

4.【强制】方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格。

赞同,能够强制遵照。基本都是业内共识了。开发

  1. 【强制】常量命名所有大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

赞同,能够强制遵照。所有大写,单词间下划线隔开,基本都是共识了,看到过部分代码由于考虑到长度问题,使用了一些缩写来表达,我我的不是很喜欢,属于宁肯长一些,但更喜欢可读性强一些的开发者。io

  1. 【强制】抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类 命名以它要测试的类的名称开始,以 Test 结尾。

赞同,能够强制遵照。这样理解会更加清晰一些。阿里巴巴

  1. 【强制】类型与中括号紧挨相连来表示数组。

赞同,能够强制遵照。这样看起来会更加的直观清晰,手册中提到的反例是 在main函数的入参中,使用String args[]来定义。我看了下目前IDEA在自动生成main函数时已是String[] args这种风格了。变量

  1. 【强制】POJO类中的任何布尔类型的变量,都不要加is前缀,不然部分框架解析会引发序列 化错误。

有待考究,待补充,手册中给的反例是定义为基本数据类型 Boolean isDeleted的属性,方法也是isDeleted(),框架在反向解析时,会觉得对应的属性名称是deleted,致使属性获取不到,进而抛出异常。

那么是哪些框架会出现这些问题呢,如今是否仍然有这些问题,这个有必定历史感的规范是否仍要遵照,毕竟我以为加上is后,若是是布尔类型,我会更好理解一些,也能够和数据库中的命名一一对应。

9.【强制】包名统一使用小写,点分隔符之间有且仅有一个天然语义的英语单词。包名统一使用 单数形式,可是类名若是有复数含义,类名可使用复数形式。

到类名以前的部分赞同,能够强制遵照。 关于类名有复数含义,能够用复数形式,这个困扰的主要是为何类名会有复数含义呢,类表明的应该就是一个功能和属性的集合,按个人理解来讲,应该是不具有复数含义的。

10.【强制】避免在子父类的成员变量之间、或者不一样代码块的局部变量之间采用彻底相同的命名,使可读性下降。

基本赞同,能够遵照,若是是表明同一个意思,用一个变量名表达,可读性会更好,管理维护也在一处地方。

相关文章
相关标签/搜索