java开发编程规范(1)

命名规范

1.强制---代码中的命名都不能用下划线或$开头,也不能以此结尾。---代码命名严禁使用拼音与英文混合的命名方法,更不应该使用中文进行命名,即使纯拼音命名方法也要尽量不用,规范的命名可以让其他读者易于理解。

2.强制---类名的命名使用UpperCamelCase风格,即必须遵从驼峰形式,DO/BO/DTO/VO/AO这种例外,这些例外组合使用也应该全大写,例如UserDO XmlService TcpUdpDeal。

此处DO(Data Object)是与数据库表结构一一对应,通过DAO层向上传输数据源对象。DTO(Data Transfer Object)是数据传输对象,Service或Manager向外传输的对象。BO(Business Object)是业务对象,由Service层输出的封装业务逻辑的对象。AO(Application Object)是应用对象。VO (View Object)是视图对象,主要对应展示界面显示的数据对象,用一个VO对象类封装整个界面展示所需的对象数据

3.强制---方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。即首字母为小写的UpperCamelCase风格。

4.强制---常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。例如:MAX_VALUE、PI、MIN_WIDTH等

5.强制---抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。例如AbstractList、AbstractMap、NullPointerException、IndexOutOfBoundsException、CalculatorTest。

6.强制---数组类型的定义使用String[] args的形式,禁止使用String args[]的格式。

7.强制---POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。

针对isXxxx,Gson序列化方式和fastjson和jackson有所不同,为了避免发生难以预料的错误,则要直接使用xxxx命名。

8.强制---包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。

9.强制---严禁完全不规范的缩写,避免望文不知义。例如AbstractClass“缩写”命名成 AbsClass,这样会严重降低代码的可读性。

10.推荐---任何自定义编程元素在命名时,使用尽量完整的单词组合来表达其意,这样可以达到代码自解释的目标。例如PullCodeFromRemoteRepository,从远程仓库拉去代码的类名。

11.推荐---使用了设计模式的模块、接口、类和方法,在命名时要体现出具体的模式。例如,工厂模式后缀加Factory,单例模式后缀Singleton,装饰模式后缀Decorator,代理模式Proxy和观察者模式Observer等,这样有利于阅读者快速理解架构设计理念。

12.推荐---接口类中的方法和属性不要加任何修饰符号(public 也不要加),保持代码的简洁性,并加上有效的 Javadoc 注释。尽量不要在接口里定义变量,如果一定要定义变量,肯定是与接口方法相关,并且是整个应用的基础常量。

/**
* 这是一个动物接口,定义了动物的基本行为。
*/
publicinterfaceAnimal {
    /**
     * 动物发出声音的方法。
     */
    voidmakeSound();
​
    /**
     * 动物进食的方法。
     */
    voideat();
}

13.接口和实现类的命名规则有两套,强制---对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部的实现类用 Impl 的后缀与接口区别;推荐---形容能力的接口名称,取对应形容词做接口名(通常是-able结尾)。

14.枚举类名后最好带上Enum后缀,枚举成员名称需要全大写,单词之间用下划线隔开,枚举其实就是特殊的常量类,不能继承其他类,是一个被命名的整型常数集合,且构造方法被默认强制是私有。例如,一年的四季,12个月份等。

/**
* 这是一个颜色枚举类,定义了常见的颜色。
*/
publicenumColor {
    /**
     * 红色
     */
    RED,
    /**
     * 绿色
     */
    GREEN,
    /**
     * 蓝色
     */
    BLUE
}

15.各层命名:

  • Service/DAO 层方法命名规约

  • 1) 获取单个对象的方法用 get 做前缀。例如getUserById

  • 2) 获取多个对象的方法用 list 做前缀。例如listUsers

  • 3) 获取统计值的方法用 count 做前缀。例如countUsers

  • 4) 插入的方法用 save/insert 做前缀。例如saveUser

  • 5) 删除的方法用 remove/delete 做前缀。

  • 6) 修改的方法用 update 做前缀。

  • 领域模型命名规约

  • 1) 数据对象:xxxDO,xxx 即为数据表名。

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

  • 3) 展示对象:xxxVO,xxx 一般为网页名称。

  • 4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。

依据阿里开发规范整理

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值