• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

编程规约之命名风格

互联网 diligentman 2周前 (04-07) 10次浏览

编程规约之命名风格

强制:

  1. 代码中命名均不能以下划线、美元符开始,也不能以下划线或美元符结束;

  2. 严禁拼音与英文混合,更不允许使用中文的方式;

  3. 代码注释避免使用歧视性词语;

  4. class name uses UpperCamelCase;

  5. 方法名、参数名、成员变量、局部变量统一使用 lowerCamelCase;

  6. 常量命名全部大写,单词间下划线隔开,力求语义表达完整,名字长也没关系;

  7. 抽象类命名以Abstract/Base开头,异常类命名使用Exception结尾,测试类命名以要测试的类开始,以Test结尾

  8. 数组表示使用类型紧挨中括号

  9. POJO类中任何bool类型变量都不要加is,否则部分框架解析会引起序列化错误;

  10. 包名统一使用小写、单数形式,若有复数含义,类名亦可,点分间隔之间只有一个自然语义的英语单词

  11. 避免 子父类的成员变量之间、不同代码块成员变量之间采用完全相同的命名,理解性会降低;

    子父类成员变量名相同,即使是public也能通过编译,同一方法内的不同代码块中同名也是合法的,但是需要避免这些情况;

  12. 杜绝完全不规范的缩写,避免忘文生义;

推荐:

  1. 为了达到代码自解释的目的,编程元素在命名时使用尽量完整的单词组合来表示

  2. 常量与变量命名时,表示类型的名词放在词尾,以提高辨识度;

  3. 如果模块、接口、类、方法使用了设计模式,应该在命名时体现出具体模式;

  4. 接口中的方法和属性不要加任何修饰符号(public也不要),保持代码简洁性,并且用Javadoc注释,尽量不要在接口里定义变量,要是一定要定义,确定与接口方法相关,并且是整个应用的基础常量;

    JDK8 允许有默认实现,那么这个default方法是对所有实现类都有价值的默认实现;

  5. 接口和实现类的命名有两套规则:

    1. [强制]对于Service和DAO类,基于SOA的理念,暴露出来的服务一定是接口,内部的实现类用Impl的后缀与接口区别;

      正例:CacheServiceImpl 实现CacheService接口;

    2. 如果是形容能力的接口名称,去对应的形容词为接口名(通常是-able的形容词)

      AbstractTranslator实现Translatable

  6. 枚举类名带上Enum后缀,枚举成员名称需要全部大写,单词间用下划线隔开;

枚举是特殊的常量类,且构造方法被默认强制私有

正例: 枚举名字ProcessStatusEnum的成员名称:SUCCESS、UNKNOWN_REASON

参考

各层命名规约:

A) Service/DAO 层命名规约

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

展开阅读全文

© 著作权归作者所有

举报

打赏

0


0 收藏

微信
QQ
微博

分享

作者的其它热门文章

基于Ubuntu20.10学习python虚拟环境搭建
Socket网络编程之收发数据(Python)
线性代数与矩阵论–向量、矩阵、向量范数、矩阵范数
Java运行环境配置以及第一个Java程序


程序员灯塔
转载请注明原文链接:编程规约之命名风格
喜欢 (0)