首页 > 代码库 > 阿里巴巴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