ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

简单易懂的阿里巴巴Java代码书写规范笔记一 编程规约

2019-06-28 09:27:41  阅读:251  来源: 互联网

标签:Java 前缀 规约 value 枚举 接口 命名 易懂 String


  1. 代码中的命名不能以_或者$开始或者结束,也不能用拼音和英文混合,更不能使用中文。最好别用纯拼音,不过全世界都使用的拼音除外(比如taobao)。
  2. 类名的每个单词第一个字母都要大写,但是极度缩略词可以全部大写,比如UserSearchDao。
  3. 方法名,参数名,成员变量,局部变量的命名是第一个单词小写后面每个单词首字母大写。比如setMoney()。
  4. 常量名全部大写,中间用下划线隔开,要求完整表达出参数的含义,长度不重要。MOM_GAVE_MONEY = 100;

抽象类命名用Abstract或者base开头,异常类命名用Exception做结尾,用于测试的类命名要写清楚要测试的是什么,以要测试的东西开始,Test结尾。如:AbstractBaseDao,IOExpection,CameraUploadTest.

  1. 定义数组类型时要带上中括号,中括号是定义数组的数据类型的一部分。如String[] alist。
  2. 如果一个参数是boolean型的(值只有true和false),则不要取名成isXxxxx,如isDelete。这样取名会照成bug。因为boolean型的获取值是 isDelete(),胡乱取名有些情况会报错的。
  3. 包名全部用小写,每个英文单词之间都要用 . 隔开。
  4. 缩写力求规范易懂,各要素命名一定要标明这块代码是做什么的,有什么功能,是什么东西。单词组合尽量完整表述务必清晰,如果类,模块,接口使用了设计模式,尽量在命名中体现出来以便于理解。
  5. 接口类的方法和相关属性不需要添加任何修饰词,力求简洁,用javadoc写好有效注释。

尽量不要在接口里定变量,如果非要定,那一定要和接口有关,而且是这个应用的基础常量。

  1. 接口和实现类的命名规则:
  1. 如果是service和dao类,基于SOA理念,暴露的服务一定是接口。内部要实现这个接口用Impl后缀与接口区别。如:CacheServiceImpl 实现 CacheService 接口。
  2. 如果是用来表达能够做什么的接口(表示能力的接口),取对应的形容词做接口名(一般是加上-able后缀)。如:AbstractTranslator 实现 Translatable。
  1. 枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。 说明:枚举其实就是特殊的常量类,且构造方法被默认强制是私有。

16. 各层命名规约: A) Service/DAO 层方法命名规约 1) 获取单个对象的方法用 get 做前缀。 2) 获取多个对象的方法用 list 做前缀。 3) 获取统计值的方法用 count 做前缀。 4) 插入的方法用 save/insert 做前缀。 5) 删除的方法用 remove/delete 做前缀。 6) 修改的方法用 update 做前缀。 B) 领域模型命名规约 1) 数据对象:xxxDO,xxx 即为数据表名。 2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。 3) 展示对象:xxxVO,xxx 一般为网页名称。 4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO

 

附录1:

SOA理念:把所有功能模块弄成一个单独的模块,弄成独立的服务,设置一个数据交互接口。如果别的模块需要这一块的数据,调用这个接口就可以了。

附录2:枚举类:如果变量值仅在一个范围内变化,且带有名称之外的延伸属性,定义为枚举类。一种在方法里直接创建对象的写法,用Enum修饰,get,set方法获取。比如:

public enum candyEnum {

color(red),taste(sweet);

private String value;

candyEnum(String value) {

this value = value;

}

public String getValue(){

return value;

}

public void setValue(String value) {

this.value = value;

}

}

标签:Java,前缀,规约,value,枚举,接口,命名,易懂,String
来源: https://blog.csdn.net/dandelionoooo/article/details/93967624

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有