参与国际化项目需遵循的java命名规范
笔者最近帮助一些朋友应聘远程工作(一般都是一些国外的项目),国外的项目负责人一般都会要求提供github账号或者一些源代码,很多朋友在这一关就被筛选掉了,其中不乏一些我认为技术非常厉害的行业大牛,他们都研发过很多的大型项目,经验与技术实力都非常不错。那究竟是为什么呢?我经过仔细的研究,发现他们都有一个共同点,就是命名规范不太严谨。我对这些在应聘远程项目第一关就被筛选掉了的程序员做了一个问卷调查:你都知道哪些java命名规范?最终结果显示:
- 类的首字母要大写,使用驼峰标识
 - 变量首字母小写,使用驼峰标识
 - 常量字母全部大写,下划线分隔
 - 使用英文单词,不要使用拼音
 
在很多的java程序员看来能做到这些,就已经是很规范的命名方式了,究竟还有哪些不足之处?笔者总结了一下java开发中的最常用的一些命名规范,如果有不足之处,还请各位朋友不吝赐教!如果您觉得本文对您有帮助,期待您能帮忙关注、转发!
一、package命名规范
软件项目的包名称应该是由您的公司的域名的倒序,再加上您的项目的名称,均使用小写字母,不能包含其他符号。可以在最后添加包的版本,如下图实例所示:
org.example.aprojectname
org.example.aprojectname.innerpkg
org.example.aprojectname.innerpkg.anotherpkg
org.example.aprojectname.innerpkg2
org.example.anotherproject
org.example.anotherproject.v2
二、Class命名规范
类名必须是一个 名词,使用驼峰命名方式,首字母应大写,例如HashMap。应该可以从类名中推断出它大概会包含什么样的函数和变量。例如:
class Student{}
class ArrayList{}
class HashMap{}
class ComputerEngineer{}
三、Interface接口
接口名称应尽量使用 形容词。有时也可以是名词,如:List或Map。与类的命名规范一样,使用驼峰命名,首字母应大写。如下:
interface Cloneable{}
interface AutoCloseable{}
interface PreparedStatement{}
interface Engineer{}
- 接口通常代表一类对象的总称。形容词“会跑的”可以是一个接口名称,实现类可以是人、狗、猫。
 - 而使用名词需要具有一定的概括性,“爪子”比“猫爪”更像是一个接口的名字。
 
四、变量
变量尽量是简短而且有意义的名词,遵循驼峰命名,首字母小写。并且不要使用划线('_')或美元符号'$'字符。
- 在for循环中使用的计数变量,可以是i,j,k,m和n,它们也常用于整数
 - 对于 布尔值,通常开头应该是is或has。
 - 可以使用Of串联多个名词
 - 可以使用形容词修饰名词
 
int countOfCustomer;   //Of串联
float averageInterest;   //形容词修饰名词
long timeInMillisecond, daysInYear;    //时间
boolean isEngineer, isCompleted, hasSubmitted;   //布尔类型
五、常量
常量也是程序的重要组成部分。也要使用名词,或者形容词修饰的名词。全部字母大写,使用下划线分隔单词。
public static final float PI = 3.14;
static int CREATED_ON_YEAR = 2019;
六、方法
方法名称要使用动词,并且应该从名称中可以推断出方法的功能,尽量简短。使用驼峰标志命名。通常, get 和 set 用于分别获取数据和设置数据。对于布尔值,方法名称应与与变量名称相同。
void print(Object obj);
void remove(Obejct obj);
Object update();
int getCountOfCustomer();//getter
void setCountOfCustomer(int countOfCustomers);//setter
boolean isUserAdmin(User user);  //布尔类型
七、泛型
使用单个大写字母, T使用的比较广泛。E通常被用于集合元素,K和V通常被用于映射关系。请勿使用多字符。
public <T> void print(T t);
interface List<E>{}
class HashMap<K, V> {};
期待您的关注
- 博主最近新写了一本书:《手摸手教您学习SpringBoot系列-16章97节》
 - 本文转载注明出处(必须带连接,不能只转文字):字母哥博客。
 
参与国际化项目需遵循的java命名规范的更多相关文章
- Java~命名规范
		
下面总结以点java命名规范 虽然感觉这些规范比起C#来说有点怪,但还是应该尊重它的命名! 命名规范 项目名全部小写 包名全部小写 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写. ...
 - 软帝学院教你java命名规范法则
		
java命名规范法则大全 在我们在刚开始学习java的时候,给包.类.方法等命名的时候总是取名不规范,大多都是随便取的,对于一个专业的程序员来说.命名规范化也是必不可少的.命名规范的话能够在编码过程中 ...
 - java编程规范之java命名规范
		
想要成为一个优秀的程序员,首先要培养良好的编程习惯,为了提高代码的可读性,必须有好的命名规范. 这篇文章是小编结合网上的很多资料整理出来的,若有不当或错误的地方,欢迎大家指正 在文章开始前,为方便阅读 ...
 - Java命名规范基础
		
一.java命名规范 1.类和接口:由多个单词组成时,所有单词的首字母大写,如TestJava 2.变量名和方法(函数):由多个单词组成时,所有第一个单词的首字母小写,之后每一个单词的首字母大写,如: ...
 - 【JAVA】笔记(1)---JVM内存图;方法重载条件;输入方法;转义字符;强制类型转换;变量分类及区别;Java命名规范;
		
Java命名规范: 1.包:全部字母小写: 2.类+接口:所有单词的首字母大写: 3.变量+方法:第一个单词的首字母小写,其余单词首字母大写: 3.常量名:所有字母均大写,且用下划线" _ ...
 - 告别编码5分钟,命名2小时!史上最全的Java命名规范参考!
		
简洁清爽的代码风格应该是大多数工程师所期待的.在工作中笔者常常因为起名字而纠结,夸张点可以说是编程5分钟,命名两小时!究竟为什么命名成为了工作中的拦路虎. 每个公司都有不同的标准,目的是为了保持统一, ...
 - 史上最全的Java命名规范[转]
		
每个公司都有不同的标准,目的是为了保持统一,减少沟通成本,提升团队研发效能.所以本文中是笔者结合阿里巴巴开发规范,以及工作中的见闻针对Java领域相关命名进行整理和总结,仅供参考. 一.Java中的命 ...
 - Java命名规范
		
驼峰法则: 将所有字母都小写(包括缩写),然后将单词的第一个字母大写. 每个单词的第一个字母都大写,来得到大驼峰式命名. 除了第一个单词,每个单词的第一个字母都大写,来得到(小)驼峰式命名. 为避免歧 ...
 - java命名规范和编程技巧
		
一个好的java程序首先命名要规范. 命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,方便维护等作用 Package 的命名 Package 的名字应该都是由一个小写 ...
 
随机推荐
- php企业微信获取员工userid以及打卡信息
			
企业微信可以通过部门列表获取部门下的员工信息,从而获取到员工的userid //首先获取需要的access_token $access_token = json_decode($this->ge ...
 - kubernetes垃圾回收器GarbageCollector源码分析(一)
			
kubernetes版本:1.13.2 背景 由于operator创建的redis集群,在kubernetes apiserver重启后,redis集群被异常删除(包括redis exporter s ...
 - B-概率论-条件概率
			
目录 条件概率 一.条件概率简介 二.条件概率推广 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblo ...
 - 张高兴的 .NET Core IoT 入门指南:(五)串口通信入门
			
在开始之前,首先要说明的是串口通信所用到的 SerialPort 类并不包含在 System.Device.Gpio NuGet 包中,而是在 System.IO.Ports NuGet 包中.之所以 ...
 - java架构之路-(Redis专题)Redis的主从、哨兵和集群
			
我们使用的redis,单机的绝对做不到高可用的,万一单机的redis宕机了,就没有备用的了,我们可以采用集群的方式来保证我们的高可用操作. 主从架构 大致就是这样的,一个主节点,两个从节点(一般两个就 ...
 - jmeter-中文乱码问题
			
1.被测系统中问乱码 解决办法:接口请求时添加编码方式UTF-8
 - Uipath 浏览器页面最大化和最小化
			
文章来源东京IT青年前线http://www.rpatokyo.com/ Uipath 浏览器页面最大化和最小化 浏览器在关闭时会自动记忆上次浏览器关闭时窗口的小,下次再次会以同样的大小打开.机器 ...
 - 06_基本框架_VMCS_GuestArea
			
1 Guest-State Area 1.1 References 注释: 其实 内容很多 一般是不背 的:需要的时候来查就行:但是要大致知道是做啥的. 代码 > 设置 Guest Area / ...
 - git  jenkins 基本部署   jenkins持续集成
			
1.什么是持续集成? 持续集成来简化我们的工作 还能让产品可以快速迭代,同时还能保持代码高质量产出.2.Jenkins的安装配置: [root@jenkins ~]# yum inst ...
 - JAVA实现扫描线算法
			
首先说一下,教科书上的扫描线算法确实是用c++很好实现,而且网上有很多源码,而java实现的基本没有(可能是我没看到),所以肖先生还是打算自己码(实验作业写这个而自己又个是写java的猿0.0). 对 ...