码出高效,阿里巴巴Java开发手册

一、编程规约

(一)命名风格
命名不能以_或$开始和结束
命名不能使用拼音或英文+拼音
命名使用驼峰式
常量使用大写和下划线
抽象类:以Abstract或Base开头,异常类:以Exception结尾,测试类:以要测试的类开头,以Test结尾
[]跟在String紧后
POJO类中,布尔型不加is
包名小写,点分隔符间有且仅有一个英文单词,单数
杜绝不规范的缩写
自定义元素,使用尽量完整的单词组合
若使用了设计模式,命名时体现出具体模式
接口的方法和属性不加任何修饰符
对于Service和DAO类,实现类用Impl后缀;如果时形容能力的接口名称,取对应的形容词(通常-able)作为接口名
枚举类,以Enum为后缀;枚举成员全大写和下划线;
各层命名规约:

  1. Service / DAO 层
    获取单个对象:get前缀
    获取多个对象:list前缀
    统计:count前缀
    插入:save / insert前缀
    删除:remove / delete前缀
    修改:update前缀
  2. 领域模型
    数据对象:xxxDO,xxx为数据表名
    数据传输对象:xxxDTO,xxx
    展示对象:xxxVO,xxx
    POJO时DO/DTO/BO/VO的统称,禁止命名为xxxPOJO

(二)常量定义
Long的L大写
常量归类,不许全部放入一个常量类中
常量有5层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量
跨应用共享常量:client.jar中constant下
应用内共想常量:modules中constant下
子工程内共享常量:当前子工程的constant下
包内共享常量:当前包下单独的constant下
类内共享常量:类内部private static final
枚举类

(三)代码格式
{}中间为空,且不换行
if {

}else {

}
(abc),括号内左右均无空格
if/for/while等保留字与括号之间有空格
二目、三目运算符左右均有空格
采用4个空格缩进,可以设置tab为4空格
//与内容之间有且仅有一个空格
单行字符不超过120个,否则换行:

  • 第二行空4格,第三行与第二行同行
  • 运算符、点符换下行
  • 逗号,括号不换行

逗号后有空格
方法体内,不同逻辑间插入一行空行

(四)OOP规约
静态,类名访问
覆写方法必须加@Override注解
可变参数(提倡也不用),避免使用Object
Object的equals容易抛空指针异常,应使用常量或确定有值的对象调用equals
所有相同类型的包装类对象之间值的比较,全部使用equals方法比较
所有的POJO类属性必须使用包装数据类型
RPC方法的返回值和参数必须使用包装类型
所有的局部变量使用基本数据类型
定义DO/DTO/VO等POJO类时,不要设定任何属性默认值
序列化
构造方法
toString()
split
公有、保护>私有>getter、setter

二、异常日志

三、单元测试

四、安全规约

五、MySQL数据库

六、工程结构

猜你喜欢

转载自blog.csdn.net/weixin_40816843/article/details/113182751