5. 阿里巴巴程序员开发手册黄山版

学习的动力不止于此:
最近阅读了刘典武大神推荐的阿里巴巴Java开发手册泰山版 。里面的很多规范不仅仅适用于Java 。非常值得我们一起学习 。
于是,我找了最新的版本–黄山版 。
正所谓,五岳归来不看山,黄山归来不看岳 。最新版本——黄山下载地址在文章末尾 。
它是以Java开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程结构、设计规约七个维度 。
我就整理一些我目前用到的,推荐各位同学好好阅读,必有收获 。
一、编程规约
所有编程相关的命名不能以下划线或美元符号开始或结尾 。反例:_name / name_ / $first /first$
严禁使用中英文混合的方式,不能直接使用中文的方式,杜绝完全不规范的英文缩写
代码和注释中避免使用种族歧视性或侮辱性词语,例如/ 。改为/
类名使用大驼峰例如 ,方法名/参数名/成员变量/局部变量统一使用小驼峰例如:
常量名全部大写,单词用下划线分割 。不要嫌弃名字长 。
抽象类命名使用或者Base开头,异常类用结尾,测试类以Test结尾
类型与中括号紧挨相连来定义数组如 args[]
避免在子父类的成员变量之间或不同代码块的局部变量间采用完全相同的命名 。
在常量与变量命名时,表示类型的名词放词尾,以提升辨识度 。如 ,UNT
接口类中的方法和属性不要加任何修饰符号,也不要加,保持代码的简洁性,并加上相应的注释 。
枚举类名带上Enum后缀,枚举成员名称需全部大写,单词间用下划线隔开 。
获取单个对象的方法用get做前缀,多个则用list做前缀,复数结尾,如
获取统计值方法用count做前缀,插入的方法用save/做前缀
删除的方法用/做前缀,修改方法用做前缀
不允许用魔法值(即未定义的常量)如if (1= =){…} 这里的1不知道代表什么意思?替换成
final= 1;if (==){...}
long或Long赋值时,数值后使用大写L,不能为小写l,小写容易跟数值1混淆 。
浮点数类型后缀统一为大写的D或F
不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护 。
有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量 。
如果大括号内为空,简洁地写成{}即可 。若不为空则左大括号前不换行,后换行,右大括号前换行,若有else则不换行 。若终止必换行
左小括号和右相连字符不需空格,右小括号与左字符不需空格 。左大前需加空格 。

5. 阿里巴巴程序员开发手册黄山版

文章插图
if/for/while//do 保留字与左右括号间必须加空格
任何二目、三目的左右两边需加一个空格 。采用4个空格缩进,禁止tab字符 。如使用 Tab 缩进,必须设置 1 个 Tab 为 4 个空格 。
注释的双斜线与注释内容间有且仅有一个空格,在进行类型强制转换时,右括号与强制转换值间不需任何空格隔开 。
单行字符数限制不超过120个,超出需换行,第二行相对第一行缩进4个空格,从第三行开始不再继续缩进,运算符与下文一起换行,方法调用的点符合一起换行,方法调用中多个参数时在逗号后进行,在括号前不要换行 。
方法在定义与传入时,多个参数逗号后必须加空格 。IDE中的文件编码为UTF-8,换行符用Unix,不要使用格式
避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名访问即可 。
所有的覆写方法,必须加@ 注解 。
相同的参数类型,相同的业务含义,才可以使用可变参数(尽量不用可变参数编程),参数类型避免定义为 。