欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

读《阿里Java开发手册》总结(1)

程序员文章站 2022-07-05 15:34:55
一·命名约定 A)Service,DAO层方法命名约束 1)获取单个对象,方法用get做前缀 2)获取多个对象,方法用list做前缀 3)获取统计值,方法用count做前缀 4)插入方法用save(推荐)或insert做前缀 5)删除方法用remove(推荐)或delete做前缀 6)修改方法用up ......

·命名约定

  1. 类名使用大驼峰式命名(领域模式相关命名除外:如dao\vo\do等)。
  2. 常量必须全部大写,单词中间用“_”隔开(如max_count)。
  3. 抽象类命名使用abstract或base开头。异常类命名使用exception结尾。测试类命名以它要测试的类的名称开始,然后以test结尾。
  4. 中括号是数组类型的一部分:string[] args;不要使用string args[]来定义。
  5. 简单java对象(pojo)类中的布尔类型的变量,都不要加is,否则框架解析会引起序列化错误。比如boolean issuccess;这样定义,里面有个方法也叫issuccess,框架反向解析时会导致属性获取不到。
  6. 包名统一用小写,而且点分割符之间只能有一个自然语义的英文单词。
  7. 杜绝完全不规范的缩写(如以下错误示范:abstractclass写成absclass~condition写成condi)。
  8. 如果使用了设计模式,建议在类名中直接体现,便于理解设计思想(如:public class loginproxy)。
  9. 推荐接口类的方法和属性不要加任何修饰符(public也不要,default除外),保持代码的简洁,且必须加上详细的javadoc注释。
  10. 尽量不要在接口里面定义变量,如果一定要定义变量那肯定是和接口方法有关,而且是整个应用的基础变量(如:string company = “alibaba”)。
  11. 对于service和dao,基于soa思想,暴露出来的一定是接口,内部的实现类用impl的后缀与接口区分开来。如果是形容能力的接口名称,通常是以-able结尾。
  12. 枚举类名建议带上enum后缀,枚举成员名称需要全大写,单词间用下划线隔开(当成特殊的常量类,且构造方法被默认强制是私有的)
  13. 各层命名约束

a)service,dao层方法命名约束

1)获取单个对象,方法用get做前缀

2)获取多个对象,方法用list做前缀

3)获取统计值,方法用count做前缀

4)插入方法用save(推荐)或insert做前缀

5)删除方法用remove(推荐)或delete做前缀

6)修改方法用update做前缀

b)领域模型命名规范(pojo 是 do /dto / bo / vo 的统称)

1)数据传输对象: : xxoto , xxx 为业务领域相关的名称。

2)数据对象:xxxdo , xxx 即为数据表名。

3)展示对像: xxxvo . xxx 一般为网页名称。

·常量定义

  1. long 或者 long 初始从位时,必须使用大写的 l,不能是小写的l ,小写容易跟数字1棍淆,造成误解。说明: long a = 2l 认写的是数字的 21 ,还是 long 型的2 ?
  2. 推荐变量在一个范围内变化时用enum类,如果还带有名称之外的延伸属性必须使用enum类,下面例中数字为延伸信息:public enum{monday(1),tuesday(2),wednesday(3)}
  3. 不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护。如:缓存相关的常量放在类:cacheconsts下:系统配置相关的常量放在类:configconsts下。

说明:大而全的常量类,非得使用査找功能才能定位到修改的常量,不利于理解和维护。

  1. 常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。

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

2) 应用内共享常量:放罝在一方库的modules中的constant目录下。

反例:易惺变量也要统一定义成应用内共享常量,两位攻城师在两个类中分别定义了

表示“是"的变量:

a 中:public static final string yes = "yes";

b 中:public static final string yes = "y";

  1. yes.equals(b.yes) ,预期是true,但实际返回为false,导致产生线上问题

3 ) 子工程内部共享常量:即在当前子工程的constant目录下。

4) 包内共卓常最:即在当前包下单独的constantb录下。

5) 类内共享常量用private static final定义

 

相关:

《阿里巴巴java开发手册》v1.4.0(详尽版):https://yq.aliyun.com/attachment/download

编码规范考试认证:

ide插件下载: