一 命名规则

  1. 类名和接口使用意义完整的英文描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。

示例:

OrderInformation, CustomerList, 
LogManager, LogConfig, SmpTransaction
  1. 方法名使用意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。

示例:

private void calculateRate();
public void addNewOrder();
  1. 包名采用域名倒置加上自定义的包名,采用小写字母。在内部规划好包名的范围,防止产生冲突。部门内部产品使用部门名加上模块名称。产品线的产品使用产品的名称加行模块的名称

格式:

com.dmall.产品名.模块名
com.dmall.部门名称.项目名称

示例:

商品系统lighthouse:com.dmall.ware.lighthouse
通用消息:com.dmall.dafka
  1. 方法中,存取属性的方法采用setter 和 getter方法,动作方法采用动词和动宾结构。

格式:

get + 非布尔属性名()
is + 布尔属性名()
set + 属性名()
动词()
动词 + 宾语()

示例:

public String getType();
public boolean isFinished();
public void setVisible(boolean);
public void show();
public void addKeyListener(Listener);
  1. 属性名使用意义完整的英文描述,第一个单词的字母使用小写,剩余单词首字母大写其余字母小写的大小写混合法。属性名不能与方法名相同。

示例:

private customerName;
private orderNumber;
  1. 常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用 static final修饰。

示例:

private static final int PAGE_COUNT = 1000;
private static final Logger LOGGER = LoggerFactory.getLogger(CacheControlServiceImpl.class);
public static final String DEFAULT_START_DATE = "2001-12-08";
  1. 属性名可以和公有方法参数相同,不能和局部变量相同,引用非静态变量。

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

  3. 如果使用到了设计模式,建议在类名中体现出具体模式。

示例:

public class OrderFactory;
public class LoginProxy; 
public class ResourceObserver;
  1. 通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的。增加代码的可读性,减少不必要的注释。

  2. 常用组件类的命名以组件名加上组件类型名结尾。

示例:

Application 类型的,命名以App 结尾——MainApp
Frame 类型的,命名以Frame 结尾——TopoFrame
Panel 类型的,建议命名以Panel 结尾——CreateCircuitPanel
Bean 类型的,建议命名以Bean 结尾——DataAccessBean
EJB 类型的,建议命名以EJB 结尾——DBProxyEJB
Applet 类型的,建议命名以Applet 结尾——PictureShowApplet
  1. 如果函数名超过15 个字母,可采用以去掉元音字母的方法或者以行业内约定俗成的缩写方式缩写函数名。

示例:

getCustomerInformation()  改为  getCustomerInfo()
  1. 接口和实现类的命名规则

  • 对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部
    的实现类用 Impl 的后缀与接口区别。

示例:

CacheServiceImpl 实现 CacheService 接口。
  • 如果是形容能力的接口名称,取对应的形容词做接口名(通常是–able 的形式)。 示例:

AbstractTranslator 实现 Translatable。
  1. long 或者 Long 初始赋值时,必须使用大写的 L,不能是小写的 l,小写容易跟数字 1 混淆,造成误解。
    示例:

Long a = 2l; 写的是数字的21,还是Long型的2?

15.不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护。如:缓存 相关的常量放在类:CacheConsts 下;系统配置相关的常量放在类:ConfigConsts 下

  1. 各层命名规范

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

  • 获取单个对象的方法用get做前缀。

  • 获取多个对象的方法用list做前缀。

  • 获取统计值的方法用count做前缀。

  • 插入的方法用save(推荐)或insert做前缀。

  • 删除的方法用remove(推荐)或delete做前缀。

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

2)领域模型命名规约

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

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

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

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


kevin
215 声望28 粉丝

stay hungry stay foolish