LoverFactory:No3 Development Standard Specification

Java编程规范


命名约定 

准确说明变量/字段/类的完整的英文描述符。

项目         com.alibaba

包             com.alibaba.ai.util

类             UpperCamelCase

抽象类      AbstractUpperCamelCase

异常类      UpperCamelCaseException    

测试类      UpperCamelCaseTest                       

通知类      UpperCamelCaseAdvice                    

工具类      UpperCamelCaseUtils                        工具类

功能类      UpperCamelCaseInter                        拦截器       

处理器      UpperCamelCaseHandler                   处理器

接口          UpperCamelCaseService  

实现类      UpperCamelCaseServiceImp    

  

常量        MAX_VALUE

变量        lowerCamelCase

方法        lowerCamelCase

参数        lowerCamelCase

 

A) Service/DAO 层方法命名规约

1) 获取单个对象的方法用     get 做前缀。
2) 获取多个对象的方法用     list 做前缀,复数形式结尾如: listObjects。
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。

通知类     LogAdvice                              日志通知
工具类     BeanUtils\MyDateUtils           
功能类     LoginInter                               登录拦截
处理器     MysgExpHandler                   异常处理器
异常类     MsgException                        消息异常 (父类)
异常子类   ZhifuException                      支付异常 (子类)
接口       CacheService  
实现类     CacheServiceImp    
注释约定

我们还会对注释约定进行讨论,所以,我们先谈谈一些基本点: 

先写注释,后写代码。  \ 边写代码,边写注释

1. 清晰。代码注释的目的是要使代码更易于被同时参与程序设计的开发人员以及其他后继开发人员理解。 

2. 简洁。最好的注释应该是简单明了的注释。注释不必洋洋洒洒,只需提供足够的信息,使别人能够理解你的代码。 

3. 运行,

4. 功能,

5. 原因,

参数约定

成员函数的参数     @param 标识的头文件中注释。应说明: 

1. 体现功能: 体现参数的上下文。 

2. 体现约束: 参数的值域,能否被成员函数接收。例如:成员函数只接收正数,或者字符数小于五的字符串。 【前提条件】

3. 体现接口:  体现原类:Object——>体现接口:Runnable  

【支持多态性,不坚持一个参数是一个类的层次结构中某个类的实例,而说明它支持一个特定的接口,这意味着它只用多态地适应你的需要即可】

导入类                import java.lang.Long

完全限制代码     import java.lang.Long

项目命名             com.alibaba.
小写单词、域名反转
包命名                com.alibaba.ai.util
小写单词 、单数形式                  
类命名                UpperCamelCase 风格      \    DO / BO / DTO / VO / AO / PO / UID 风格
大写首字母  [首部单词、中间单词] 、单数形式                         MarcoPolo / UserDO / XmlService / TcpUdpDeal / serialVersionUID

方法名、参数名、成员变量、局部变量        lowerCamelCase 风格

小写首字母  [首部单词】、大写首字母[中间单词]                       localValue / getHttpMessage() / inputUserId
常量命名             MAX_VALUE 风格

大写单词,下划线连接                         MAX_VALUE   /  DEFAULT_START_DATE

成员函数命名

 30 秒读懂法则       WHAT、 WHY、HOW

存取函数的可见性 

尽可能地让字段成为被保护 (protected) 类型,这样只有子类可以访问它们。仅当一个外部类需要访问一个字段时,才将相应的获取函数或设置函数置为公有。注意:获取函数是公有而设置函数是私有的情况经常发生。

一定要初始化静态字段

静态字段,也叫类字段,应被赋予有效值,因为不能假定类的实例将在一个静态字段被访问之前生成。

抽象类          Abstract 或 Base 开头
AbstractUpperCamelCase
异常类         Exception 结尾
UpperCamelCaseException
测试类        Test 结尾
UpperCamelCaseTest

接口            UpperCamelCaseService              \能力接口-able   Translatable

接口属性    String COMPANY = "alibaba";

接口方法    void commit();

实现类         UpperCamelCaseServiceImp         \能力实现类   AbstractTranslator
 
设计模式     Factory结尾、Proxy结尾、Observer结尾

模块、 接口、类、方法使用了设计模式,在命名时需体现出具体模式

 public class OrderFactory;   \    public class LoginProxy;    \     public class ResourceObserver;

各层命名

A) Service/DAO 层方法命名规约

1) 获取单个对象的方法用     get 做前缀。
2) 获取多个对象的方法用     list 做前缀,复数形式结尾如: listObjects。
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。

测试集                 test成员函数

测试成员函数名前加上前缀 test。方便编译产品版前,去除测试函数

 

猜你喜欢

转载自blog.csdn.net/ddhmbbklyk2018/article/details/81736002