首页 > 代码库 > 阿里巴巴Java开发手册v1.2.0

阿里巴巴Java开发手册v1.2.0

最近阿里出了java开发手册v1.2.0版,看一下自己平时有哪些做不到的,特此记录一下(不太理解的标为红色)

此手册编写是为了提供代码质量,降低协同成本,提升沟通效率。对无规范的沟通深有感触。

编程规范

  • 变量规范

1.类名在 PO(Persist Object) VO(Value Object) BO(Business Object) DO(Domain Object) DTO(Data Transfer Object) AO(Access Object)使要保持大写

2.抽象类名Abstract或Base开头 异常Exception结尾 测试了Test结尾

3.POJO类boolean变量不要加is,如isDeleted,方法也是isDeleted,RPC框架反向解析时候,会认为变量名是delete,引起序列化错误

4.包名点分隔符之间有且只有一个单词, 并且一定为单数,类名有要求可以为负数

5.利用设计模式,要显示在类名中

6.接口方法属性不加修饰,保持简洁

7.正常的就不说了,形容能力的接口名称,形容词做接口,如AbstractTranslator implements Translatable。  

8.枚举名加上Enum后缀

9.各层命名规范:

Service/DAO层方法命名规范(前缀):

1)单个对象方法用get

2)多个对象方法用list

3)统计值的方法用count

4)插入方法用save

5)删除方法用remove/delete

6)修改方法用update

领域对象模型:

1)数据对象 xxxDao xxx为数据库表明

2)数据传输对象 xxxDTO xxx为业务领域相关名称

3)展示对象 xxxVO xxx为网页名

4)禁止命名xxxPOJO

  • 常量规范

1.不允许魔法值直接出现在变量中

2.常量应该按照功能分类,分开维护。如:缓存相关的常量放在类:CacheConsts下;系统配置相关的常量放在类:ConfigConsts下。

3.常量的复用层次有五层

跨应用共享:放置在二方库中,通常是 client.jar中的 constant目录下。  

应用内共享:放置在一方库的 modules中的 constant目录下。  

子工程内共享:即在当前子工程的 constant目录下。  

包内共享:即在当前包下单独的 constant目录下。  

类内共享常量:直接在类内部 private static final定义。  

4.常量在范围内变化,且含引申含义,定义枚举

  • 代码格式

1.单行字符超出120换行,换行规范:

正例:  
StringBuffer sb = new StringBuffer();  
// 超过 120 个字符的情况下,换行缩进 4 个空格,并且方法前的点符号一起换行   
sb.append("zi").append("xin")...    
.append("huang")...  
.append("huang")...  
.append("huang");  
反例:  
StringBuffer sb = new StringBuffer();  
// 超过 120 个字符的情况下,不要在括号前换行   
sb.append("zi").append("xin")...append      
("huang");   
 
// 参数很多的方法调用可能超过 120 个字符,不要在逗号前换行  
 method(args1, args2, args3, ...      
, argsX); 

 

2.IDE换行符用Unix形式,修改参照:http://blog.csdn.net/black_ox/article/details/7869627

异常日志

Mysql数据库

  • 建表规范

索引规范

SQL语句

ORM映射

工程结构

安全规约

 

阿里巴巴Java开发手册v1.2.0