告别编码5分钟,命名2小时!史上最全的Java命名规范参考!

简洁清爽的代码风格应该是大多数工程师所期待的。在工作中笔者常常因为起名字而纠结,夸张点可以说是编程5分钟,命名两小时!究竟为什么命名成为了工作中的拦路虎。

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

一,Java中的命名规范

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

类型 约束
项目名 全部小写,多个单词用中划线分隔‘-’ spring-cloud
包名 全部小写 com.alibaba.fastjson
类名 单词首字母大写 Feature, ParserConfig,DefaultFieldDeserializer
变量名 首字母小写,多个单词组成时,除首个单词,其他单词首字母都要大写 password, userName
常量名 全部大写,多个单词,用'_'分隔 CACHE_EXPIRED_TIME
方法 同变量 read(), readObject(), getById()

二,包命名

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

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

前缀名 含义
indi(或onem ) indi.发起者名.项目名.模块名.…… 个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,copyright主要属于发起者。
pers pers.个人名.项目名.模块名.…… 个人项目,指个人发起,独自完成,可分享的项目,copyright主要属于个人
priv priv.个人名.项目名.模块名.…… 私有项目,指个人发起,独自完成,非公开的私人使用的项目,copyright属于个人。
team team.团队名.项目名.模块名.…… 团队项目,指由团队发起,并由该团队开发的项目,copyright属于该团队所有
顶级域名 com.公司名.项目名.模块名.…… 公司项目,copyright由项目发起的公司所有

三,类命名

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

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

属性 约束
抽象类 Abstract 或者 Base 开头 BaseU
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值