分享

<div>java包名命名规则_Java开发都需要参考的一份命名规范</div>

 wenxuefeng360 2022-07-26 发布于四川
1bf5985f058c03cd112a05cb2cd05480.png

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

作者:蒋老湿 ,链接:https:///post/5df834af51882512766f416f ,来源:掘金

Java中的命名规范

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

0c4d54fcaed1466dcf5f85d217c06a1d.png

包命名

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

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

839cd2cd69ad66fd76c4e4a068207df7.png

类命名


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


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

23980c0fe0090a334f3acedbdebe3f82.png
8a640133711da40d53138bc4c3b34252.png

方法


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


返回真伪值的方法
注:pre- prefix前缀,suf- suffix后缀,alo-alone 单独使用

a24d6df4911ad70b9f580f27d290a5ea.png


用来检查的方法

53c86473c0a7299b2d89caa70167798f.png

按需求才执行的方法

bc7cd4720a6da8e09e0c628310acb724.png

异步相关方法

bcbcaeb0644c40e7e7358d7160f5d2f3.png

回调方法

6c8d356265c58599272583fcf1de4dae.png

操作对象生命周期的方法

9f5f327d4f0f8dcadd2006a2dc08ffac.png

与集合操作相关的方法

31499d4cfa071f5b79a243b8680d17cf.png

与数据相关的方法

a73ac056359e8e5e51fbe91cf9a80731.png
1d50e9b538828befa51a875eca163cb5.png

成对出现的动词

68a2aef059a3966f79da85ed813e9f10.png
d5e32032b0398db24e29cc181c4b475c.png
d7115e89f2d37ce3393b7d301758df62.png
cd4b4ddd2067983efb5d9d6947945eea.png


变量&常量命名

变量命名


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


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

常量命名


常量命名CONSTANT_CASE,一般采用全部大写(作为方法参数时除外),单词间用下划线分割。那么什么是常量呢?


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

b14fbf2b322222abac06b1f4a2a5ca8b.png

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


通用命名规则


尽量不要使用拼音;杜绝拼音和英文混用。对于一些通用的表示或者难以用英文描述的可以采用拼音,一旦采用拼音就坚决不能和英文混用。正例: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. /**
  2. * 落地也质量检测
  3. * 1. 用来解决什么问题
  4. * 对广告主投放的广告落地页进行性能检测,模拟不同的系统,如Android,IOS等; 模拟不同的网络:2G,3G,4G,wifi等
  5. * 2. 如何实现
  6. * 基于chrome浏览器,用chromedriver驱动浏览器,设置对应的网络,OS参数,获取到浏览器返回结果。
  7. * 注意:网络环境配置信息{@link cn.mycookies.landingpagecheck.meta.NetWorkSpeedEnum}目前使用是常规速度,可以根据实际情况进行调整
  8. * @author cruder
  9. * @time 2019/12/7 20:3 下午
  10. */
  11. package cn.mycookies.landingpagecheck;

类注解

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

f630c52755b6555e264ef9b6e2a43179.png

属性注解


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

abdf93eda48fbbea2a2df61e27143d69.png


方法注释


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

3c4d3a7f0a480d61ee14f237a9c0767b.png


构造方法注释


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

f83ce6dc3991e08b7e892971db8ce54b.png


注意事项


而简单注解往往是需要工程师字节定义,在使用注解时应该注意一下几点:
枚举类的各个属性值都要使用注解,枚举可以理解为是常量,通常不会发生改变,通常会被 在多个地方引用,对枚举的修改和添加属性通常会带来很大的影响。
保持排版整洁,不要使用行尾注释;双斜杠和星号之后要用1个空格分隔。

7931b4f7107e18705d9aed6b2f7d3e6d.png


❤️ 看完有所收获?希望爱学习的你不要吝啬三连击哟[点赞 + 收藏 + 评论]~

大家在入门学习java或者想要了解的过程中有遇到任何关于怎么去学习,行业等方面的问题,都可以加我的自学交流群,缺乏相关的学习路线和基础教程可以直接找我要。我的java交流裙——686.827.638

作为一个程序员,技术不是唯一出路,但技术也是非常重要的,现在竞争越来越激烈,只有不断的进阶才是我们的出路

编程是一个神秘而又美丽的领域,这个领域的大门像着所有拥有理想的人们敞开。编程也是一个残酷而又充满竞争的领域,随时会淘汰掉不够努力的人。

2019年最新Java精讲视频,PDF书籍教程,面试题,学习手册点击进入下载

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多