Java开发都须要参考的一份命名规范

每一个公司都有不一样的标准,目的是为了保持统一,减小沟通成本,提高团队研发效能。因此本文中是笔者结合阿里巴巴开发规范,以及工做中的见闻针对Java领域相关命名进行整理和总结,仅供参考。

Java中的命名规范

好的命名能体现出代码的特征,含义或者是用途,让阅读者能够根据名称的含义快速厘清程序的脉络。不一样语言中采用的命名形式截然不同,Java中经常使用到的命名形式共有三种,既首字母大写的UpperCamelCase,首字母小写的lowerCamelCase以及所有大写的并用下划线分割单词的UPPERCAMELUNSER_SCORE。一般约定,类通常采用大驼峰命名,方法和局部变量使用小驼峰命名,而大写下划线命名一般是常量和枚举中使用。java

包命名

包名统一使用小写,点分隔符之间有且仅有一个天然语义的英文单词或者多个单词天然链接到一块(如 springframework,deepspace不须要使用任何分割)。包名统一使用单数形式,若是类命有复数含义,则可使用复数形式。程序员

包名的构成能够分为如下几四部分【前缀】 【发起者名】【项目名】【模块名】。常见的前缀能够分为如下几种:spring

类命名

类名使用大驼峰命名形式,类命一般时名词或名词短语,接口名除了用名词和名词短语之外,还可使用形容词或形容词短语,如Cloneable,Callable等,表示实现该接口的类有某种功能或能力。对于测试类则以它要测试的类开头,以Test结尾,如HashMapTest。chrome

对于一些特殊特有名词缩写也可使用全大写命名,好比XMLHttpRequest,不过笔者认为缩写三个字母之内都大写,超过三个字母则按照要给单词算。这个没有标准如阿里巴巴中fastjson用JSONObject做为类命,而google则使用JsonObjectRequest命名,对于这种特殊的缩写,原则是统一就好。数据库

方法

方法命名采用小驼峰的形式,首字小写,日后的每一个单词首字母都要大写。和类名不一样的是,方法命名通常为动词或动词短语,与参数或参数名共同组成动宾短语,即动词 + 名词。一个好的函数名通常能经过名字直接获知该函数实现什么样的功能。json

返回真伪值的方法

注:pre- prefix前缀,suf- suffix后缀,alo-alone 单独使用浏览器

用来检查的方法

按需求才执行的方法

异步相关方法

回调方法

操做对象生命周期的方法

与集合操做相关的方法

与数据相关的方法

成对出现的动词

变量&常量命名

变量命名

变量是指在程序运行中能够改变其值的量,包括成员变量和局部变量。变量名由多单词组成时,第一个单词的首字母小写,其后单词的首字母大写,俗称骆驼式命名法(也称驼峰命名法),如 computedValues,index、变量命名时,尽可能简短且能清楚的表达变量的做用,命名体现具体的业务含义便可。缓存

变量名不该如下划线或美圆符号开头,尽管这在语法上是容许的。变量名应简短且富于描述。变量名的选用应该易于记忆,即,可以指出其用途。尽可能避免单个字符的变量名,除非是一次性的临时变量。pojo中的布尔变量,都不要加is(数据库中的布尔字段全都要加 is_ 前缀)。bash

常量命名

常量命名CONSTANT_CASE,通常采用所有大写(做为方法参数时除外),单词间用下划线分割。那么什么是常量呢?cookie

常量是在做用域内保持不变的值,通常使用final进行修饰。通常分为三种,全局常量(public static final修饰),类内常量(private static final 修饰)以及局部常量(方法内,或者参数中的常量),局部常量比较特殊,一般采用小驼峰命名便可。

常量通常都有本身的业务含义,不要惧怕长度过长而进行省略或者缩写。如,用户消息缓存过时时间的表示,那种方式更佳清晰,交给你来评判。

通用命名规则

尽可能不要使用拼音;杜绝拼音和英文混用。对于一些通用的表示或者难以用英文描述的能够采用拼音,一旦采用拼音就坚定不能和英文混用。正例:BeiJingHangZhou 反例:validateCanShu

  • 命名过程当中尽可能不要出现特殊的字符,常量除外。
  • 尽可能不要和jdk或者框架中已存在的类重名,也不能使用java中的关键字命名。
  • 妙用介词,如for(能够用同音的4代替), to(可用同音的2代替), from, with,of等。如类名采用User4RedisDO,方法名getUserInfoFromRedis,convertJson2Map等。

代码注解

注解的原则

好的命名增长代码阅读性,代码的命名每每有严格的限制。而注解不一样,程序员每每能够自由发挥,单并不意味着能够随心所欲之胡做非为。优雅的注解一般要知足三要素。

Nothing is strange 没有注解的代码对于阅读者很是不友好,哪怕代码写的在清除,阅读者至少从心理上会有抵触,更况且代码中每每有许多复杂的逻辑,因此必定要写注解,不只要记录代码的逻辑,还有说清楚修改的逻辑。

Less is more 从代码维护角度来说,代码中的注解必定是精华中的精华。合理清晰的命名能让代码易于理解,对于逻辑简单且命名规范,可以清楚表达代码功能的代码不须要注解。滥用注解会增长额外的负担,更况且大部分都是废话。

// 根据id获取信息【废话注解】getMessageById(id)

Advance with the time 注解应该随着代码的变更而改变,注解表达的信息要与代码中彻底一致。一般状况下修改代码后必定要修改注解。

注解格式

注解大致上能够分为两种,一种是javadoc注解,另外一种是简单注解。javadoc注解能够生成JavaAPI为外部用户提供有效的支持javadoc注解一般在使用IDEA,或者Eclipse等开发工具时均可以自动生成,也支持自定义的注解模板,仅须要对对应的字段进行解释。参与同一项目开发的同窗,尽可能设置成相同的注解模板。

包注解

包注解在工做中每每比较特殊,经过包注解能够快速知悉当前包下代码是用来实现哪些功能,强烈建议工做中加上,尤为是对于一些比较复杂的包,包注解通常在包的根目录下,名称统一为package-info.java。

/** 
* 落地也质量检测 
* 1. 用来解决什么问题 
* 对广告主投放的广告落地页进行性能检测,模拟不一样的系统,如Android,IOS等; 模拟不一样的网络:2G,3G,4G,wifi等 
* 2. 如何实现 
* 基于chrome浏览器,用chromedriver驱动浏览器,设置对应的网络,OS参数,获取到浏览器返回结果。 
* 注意:网络环境配置信息{@link cn.mycookies.landingpagecheck.meta.NetWorkSpeedEnum}目前使用是常规速度,能够根据实际状况进行调整 
* @author cruder 
* @time 2019/12/7 20:3 下午 
*/
package cn.mycookies.landingpagecheck;
复制代码

类注解

javadoc注解中,每一个类都必须有注解。

属性注解

在每一个属性前面必须加上属性注释,一般有一下两种形式,至于怎么选择,你高兴就好,不过一个项目中要保持统一。

方法注释

在每一个方法前面必须加上方法注释,对于方法中的每一个参数,以及返回值都要有说明。

构造方法注释

在每一个构造方法前面必须加上注释,注释模板以下:

注意事项

而简单注解每每是须要工程师字节定义,在使用注解时应该注意一下几点:

枚举类的各个属性值都要使用注解,枚举能够理解为是常量,一般不会发生改变,一般会被在多个地方引用,对枚举的修改和添加属性一般会带来很大的影响。

保持排版整洁,不要使用行尾注释;双斜杠和星号以后要用1个空格分隔。


写做不易,若是文章对你有帮助,能否留下脚印留个赞~

相关文章
相关标签/搜索