学习《阿里巴巴JAVA开发手册》之(一)编程规约

学习《阿里巴巴JAVA开发手册》系列

1、命名规约

(1)类名

  • 类名使用 UpperCamelCase 风格,但DO / BO / DTO / VO等领域模型相关的命名例外;
  • 正例:UserDO / XmlService / TcpUdpDeal / TaPromotion

(2)方法名、参数名、成员变量、局部变量

  • 方法名、参数名、成员变量、局部变量统一使用lowerCamelCase 风格;

(3)抽象类、异常类、测试类

  • 抽象类命名以Abstract 或 Base 开头;
  • 异常类命名使用 Exception 结尾;
  • 测试类命名以它要测试的类的名称开始,以 Test 结尾;

(4)POJO类中的布尔类型变量

  • POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误;
  • 如:定义为基本数据类型boolean isSuccess;的属性,它的方法也是isSuccess(),RPC 框架在反向解析的时候,“以为”对应的属性名称是 success,导致属性获取不到,进而抛出异常;

(5)包名

  • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词;
  • 包名统一使用单数形式(类名如果有复数含义,可以用复数形式);

(6)接口

  • 如果是形容能力的接口,取对应的形容词(通常是-able)命名;
  • 接口中的方法和属性不要加任何修饰符号(接口中的方法默认是public abstract,接口中的变量默认是public static final);

(7)枚举类

  • 枚举类命名建议加上ENUM后缀;
  • 枚举成员名称需要全部大写,单词间用下划线隔开;

(8)Service/DAO层方法

  • 获取单个对应的方法用get前缀;
  • 获取多个对象的方法用list前缀;
  • 获取统计值的方法用count前缀;
  • 插入方法用save/insert前缀;
  • 删除方法用remove/delete前缀;
  • 修改方法用update前缀;

(9)领域模型

  • 数据对象:xxxDO,其中xxx为数据表名;
  • 数据传输对象:xxxDTO,其中xxx为业务领域相关的名称;
  • 展示对象:xxxVO,其中xxx一般为网页名称;
  • POJO是DO/DTO/BO/VO的统称,禁止命名成xxx POJO;

2、常量定义

(1)魔法值

  • 不允许出现任何魔法值;
  • 魔法值:即未经定义的常量;
  • 反例: String key="Id#taobao_"+tradeId;

(2)long/Long赋初始值

  • 赋初始值时,使用大写L,而非小写l,小写容易与数字1混淆;

(3)常量归类维护

  • 不要使用一个大而全的常量类维护所有的常量,应该按照功能进行分类维护;
  • 如:系统配置相关的常量放在类ConfigConsts下;

(4)常量复用分层

  • 常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量;
  • 跨应用共享常量:放在二方库中的constant目录下;
  • 应用内共享常量:放在一方库中的modules中的constant目录下(如util模块下的constant目录);
  • 子工程内部共享常量:放在当前子工程的constant目录下;
  • 包内共享常量:放在当前包下单独的constant目录下;
  • 类内共享常量:直接在类内部private static final定义;

3、格式规约

(1)运算符

  • 任何运算符左右必须加一个空格;
  • 运算符包括赋值运算符=、逻辑运算符、加减乘除符号、三目运行符等;

(2)换行

  • 单行字符数限制不超过 120 个,超出需要换行;
  • 运算符与下文一起换行;
  • 方法调用的点符号与下文一起换行;
  • 在多个参数超长,逗号后进行换行;
  • 在括号前不要换行;

(3)缩进

  • 缩进采用4个空格;

(4)方法参数

  • 方法参数在定义和传入时,多个参数逗号后边必须加空格;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值