前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >参与国际化项目一定要遵循的java命名规范

参与国际化项目一定要遵循的java命名规范

作者头像
字母哥博客
发布2020-09-23 14:32:59
3140
发布2020-09-23 14:32:59
举报
文章被收录于专栏:写字母的代码哥

笔者最近帮助一些朋友应聘远程工作(一般都是一些国外的项目),国外的项目负责人一般都会要求提供github账号或者一些源代码,很多朋友在这一关就被筛选掉了,其中不乏一些我认为技术非常厉害的行业大牛,他们都研发过很多的大型项目,经验与技术实力都非常不错。那究竟是为什么呢?我经过仔细的研究,发现他们都有一个共同点,就是命名规范不太严谨。我对这些在应聘远程项目第一关就被筛选掉了的程序员做了一个问卷调查:你都知道哪些java命名规范?最终结果显示:

  • 类的首字母要大写,使用驼峰标识
  • 变量首字母小写,使用驼峰标识
  • 常量字母全部大写,下划线分隔
  • 使用英文单词,不要使用拼音

在很多的java程序员看来能做到这些,就已经是很规范的命名方式了,究竟还有哪些不足之处?笔者总结了一下java开发中的最常用的一些命名规范,如果有不足之处,还请各位朋友不吝赐教!如果您觉得本文对您有帮助,期待您能帮忙关注、转发!

一、package命名规范

软件项目的包名称应该是由您的公司的域名的倒序,再加上您的项目的名称,均使用小写字母,不能包含其他符号。可以在最后添加包的版本,如下图实例所示:

代码语言:javascript
复制
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。应该可以从类名中推断出它大概会包含什么样的函数和变量。例如:

代码语言:javascript
复制
class Student{}

class ArrayList{}

class HashMap{}

class ComputerEngineer{}

三、Interface接口

接口名称应尽量使用 形容词。有时也可以是名词,如:ListMap。与类的命名规范一样,使用驼峰命名,首字母应大写。如下:

代码语言:javascript
复制
interface Cloneable{}

interface AutoCloseable{}

interface PreparedStatement{}

interface Engineer{}
  • 接口通常代表一类对象的总称。形容词“会跑的”可以是一个接口名称,实现类可以是人、狗、猫。
  • 而使用名词需要具有一定的概括性,“爪子”比“猫爪”更像是一个接口的名字。

四、变量

变量尽量是简短而且有意义的名词,遵循驼峰命名,首字母小写。并且不要使用划线('_')或美元符号'$'字符。

  • 在for循环中使用的计数变量,可以是i,j,k,m和n,它们也常用于整数
  • 对于 布尔值,通常开头应该是ishas
  • 可以使用Of串联多个名词
  • 可以使用形容词修饰名词
代码语言:javascript
复制
int countOfCustomer;   //Of串联

float averageInterest;   //形容词修饰名词

long timeInMillisecond, daysInYear;    //时间

boolean isEngineer, isCompleted, hasSubmitted;   //布尔类型

五、常量

常量也是程序的重要组成部分。也要使用名词,或者形容词修饰的名词。全部字母大写,使用下划线分隔单词。

代码语言:javascript
复制
public static final float PI = 3.14;

static int CREATED_ON_YEAR = 2019;

六、方法

方法名称要使用动词,并且应该从名称中可以推断出方法的功能,尽量简短。使用驼峰标志命名。通常, get 和 set 用于分别获取数据和设置数据。对于布尔值,方法名称应与与变量名称相同。

代码语言:javascript
复制
void print(Object obj);

void remove(Obejct obj);

Object update();

int getCountOfCustomer();//getter

void setCountOfCustomer(int countOfCustomers);//setter

boolean isUserAdmin(User user);  //布尔类型

七、泛型

使用单个大写字母, T使用的比较广泛。E通常被用于集合元素,KV通常被用于映射关系。请勿使用多字符。

代码语言:javascript
复制
public <T> void print(T t);

interface List<E>{}

class HashMap<K, V> {};

喜欢 (1)or分享 (0)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、package命名规范
  • 二、Class命名规范
  • 三、Interface接口
  • 四、变量
  • 五、常量
  • 六、方法
  • 七、泛型
相关产品与服务
腾讯问卷
腾讯问卷是专业的在线问卷调查平台,支撑了腾讯核心业务的⽤户、市场、产品研究工作。平台提供基于数据收集的专业调查研究解决方案,覆盖问卷调查、信息上报、在线测评、在线考试、360度评估、投票打卡等工作场景,致力于为客户提供高效的洞察决策工具。同时平台还拥有超百万级的真实样本用户,可以提供高效、精准的问卷有偿投放服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档