1. 【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。

反例: _name / __name / $Object / name_ / name$ / Object$

2. 【强制】 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。

说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式

也要避免采用。

反例:  DaZhePromotion [ 打折 ] /  getPingfenByName() [ 评分 ] /  int 某变量 = 3

正例:  alibaba /  taobao /  youku /  hangzhou 等国际通用的名称,可视同英文。

3. 【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外: ( 领域模型

的相关命名 )DO /  BO  /  DTO /  VO 等。

正例: MarcoPolo /  UserDO /  XmlService /  TcpUdpDeal /  TaPromotion

反例: macroPolo /  UserDo /  XMLService /  TCPUDPDeal /  TAPromotion

4. 【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从

驼峰形式。

正例:  localValue /  getHttpMessage() /  inputUserId

5. 【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

正例:  MAX _ STOCK _ COUNT

反例:  MAX _ COUNT

6. 【强制】抽象类命名使用 Abstract 或 Base 开头 ; 异常类命名使用 Exception 结尾 ; 测试类

命名以它要测试的类的名称开始,以 Test 结尾。

7. 【强制】中括号是数组类型的一部分,数组定义如下: String[] args;

反例:使用 String args[] 的方式来定义。

8. 【强制】 POJO 类中布尔类型的变量,都不要加 is ,否则部分框架解析会引起序列化错误。

反例:定义为基本数据类型 Boolean isSuccess; 的属性,它的方法也是 isSuccess() , RPC

框架在反向解析的时候,“以为”对应的属性名称是 success ,导致属性获取不到,进而抛出异

常。

9. 【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用

单数形式,但是类名如果有复数含义,类名可以使用复数形式。

正例: 应用工具类包名为 com . alibaba . open . util 、类名为 MessageUtils( 此规则参考

spring 的框架结构 )

10. 【强制】杜绝完全不规范的缩写,避免望文不知义。

反例:  AbstractClass “缩写”命名成 AbsClass;condition “缩写”命名成  condi ,此类

随意缩写严重降低了代码的可阅读性。

11. 【推荐】如果使用到了设计模式,建议在类名中体现出具体模式。

说明:将设计模式体现在名字中,有利于阅读者快速理解架构设计思想。

正例: public class OrderFactory;

public class LoginProxy;

public class ResourceObserver;

12. 【推荐】接口类中的方法和属性不要加任何修饰符号 (public 也不要加 ) ,保持代码的简洁

性,并加上有效的 Javadoc 注释。尽量不要在接口里定义变量,如果一定要定义变量,肯定是

与接口方法相关,并且是整个应用的基础常量。

正例:接口方法签名: void f();

接口基础常量表示: String COMPANY = " alibaba " ;

反例:接口方法定义: public abstract void f();

说明: JDK 8 中接口允许有默认实现,那么这个 default 方法,是对所有实现类都有价值的默

认实现。

13. 接口和实现类的命名有两套规则:

1 ) 【强制】对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部

的实现类用 Impl 的后缀与接口区别。

正例: CacheServiceImpl 实现 CacheService 接口。

2 )  【推荐】 如果是形容能力的接口名称,取对应的形容词做接口名 ( 通常是– able 的形式 ) 。

正例: AbstractTranslator 实现  Translatable 。

14. 【参考】枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。

说明:枚举其实就是特殊的常量类,且构造方法被默认强制是私有。

正例:枚举名字: DealStatusEnum, 成员名称: SUCCESS /  UNKOWN _ REASON 。

15. 【参考】各层命名规约:

A) Service / DAO 层方法命名规约

1 ) 获取单个对象的方法用 get 做前缀。

2 ) 获取多个对象的方法用 list 做前缀。

3 ) 获取统计值的方法用 count 做前缀。

4 ) 插入的方法用 save( 推荐 ) 或 insert 做前缀。

5 ) 删除的方法用 remove( 推荐 ) 或 delete 做前缀。

6 ) 修改的方法用 update 做前缀。

B) 领域模型命名规约

1 ) 数据对象: xxxDO , xxx 即为数据表名。

2 ) 数据传输对象: xxxDTO , xxx 为业务领域相关的名称。

3 ) 展示对象: xxxVO , xxx 一般为网页名称。

4 ) POJO 是 DO / DTO / BO / VO 的统称,禁止命名成 xxxPOJO 。

阿里 java 变量命名规范_阿里巴巴Java开发手册-命名规约相关推荐

  1. java标识命名服务_阿里巴巴Java开发规约第一章编程规约-命名风格篇

    1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name /__name / $name / name_ / name$ / name__ 老四附言: ...

  2. 阿里巴巴使用Java技术干嘛_阿里巴巴java技术岗三面分享

    阿里巴巴java技术岗三面分享 今天花时间整理了阿里巴巴Java岗技术三面的资料,分给大家做参考,祝大家都能找到好工作!加油! 一面 1.自我介绍,讲讲求职意向和擅长的技能 2.Tomcat的基本架构 ...

  3. 前端命名规范_值得收藏的前端命名规范

    不知道大家有没有这样一个苦恼,在开发过程中经常为了起一个css名,文件名,组件名而苦恼 起的高大上点害怕连自己都看不懂,起的太简单又显得自己很不专业 下面我们就来解决这个问题 布局使用语义化标签 对于 ...

  4. java 变量重名_关于java中变量的重名问题

    在java语言中,变量的命名有很多规则和规范,但是有的地方可以使用相同的变量名,有的地方却不能使用,这是为什么呢? 下面是个人的一点见解,是从作用域和内存来分析的,目的是为了方便理解 大家可以看下面这 ...

  5. java 变量 安全访问_访问java变量

    Java多线程编程:变量共享分析(Thread) Java多线程编程:变量共享分析(Thread) Java 创建线程的两种方法 此处只简单讲下自己对java多线程变量共享的理解: 按照进程和多线程的 ...

  6. java的变量命名规则_【Java】变量命名规范

    Java是一种区分字母的大小写的语言,所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范,接下来我们简单的来讲讲Java语言中包.类.变量等的命名规范. (一)Package(包)的命名 P ...

  7. java 代码书写规范_代码书写规范和命名规范

    上一篇给大家分享了一下,关于文档编写的几个概念.这篇文章阐述如果编写代码书写规范以及命名规范文档.[以java语言为例] 1.代码书写规范 代码书写规范,能够让不同的人,写出相同风格的代码.很多人都看 ...

  8. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  9. 平台资源表 表和表字段的命名规范——JEPLUS软件快速开发平台

    为什么80%的码农都做不了架构师?>>>                                      JEPLUS平台资源表和表字段的命名规范 规范性的东西其实都是约定 ...

  10. 《阿里巴巴Android开发手册》正式发布

    春意盎然之际,阿里巴巴再度为工程师送上一份重磅开春好礼:<阿里巴巴Android开发手册>.该开发规范在阿里内部经过了长期的修缮,现已总结成册,向所有移动开发者.技术爱好者开放,希望帮助开 ...

最新文章

  1. asp.net程序调用NTFS分区下Oracle客户端
  2. 约瑟夫环之循环链表实现
  3. 在 Vue 中正确使用 防抖 和 节流
  4. Django之ORM
  5. Android系统架构开篇
  6. 沈航计算机考研上岸,【图片】一战厦大计算机上岸,经验帖。慢更【考研吧】_百度贴吧...
  7. python一个函数调用另一个函数的返回值_在另一个函数中使用返回值
  8. python找出有向图的所有环,Python:有向图中的所有简单路径
  9. 贪心法—— LeetCode45 跳跃游戏II(跳跃游戏进阶版)
  10. ava 8中的新功能特性
  11. Eclipse — 如何快速生成servlet类和配置文件(web里)
  12. EventBus 发布/订阅 机制的 java 实现
  13. 鼠标悬停显示不同内容_数字标牌的A到Z:C代表CMS(内容管理系统)
  14. Java从入门到精通(视频教程+源码)
  15. [转] Node.js 服务端实践之 GraphQL 初探
  16. 光纤模块与光纤收发器使用方法
  17. 五大免费采集器哪个好,火车头,海纳,ET,三人行,狂人采集
  18. [Irving] Android 点击两次返回退出系统
  19. Golang开发定时钉钉小机器人(基于gin+gorm)
  20. 卡尔曼滤波的细致讲解从一维到多维

热门文章

  1. Java 窗口设置图标及背景图片
  2. ROST_CM6软件之词频分析、社会网络和语义网络分析、情感分析
  3. 计算机网络安全知识汇总
  4. Excel VBA解密教程
  5. 汇编语言 王爽 第四版 实验3
  6. 基于Springboot的旅游管理系统
  7. 黑马程序员全套Java教程_Java基础入门视频教程零基础自学Java必备教程视频讲义(2)
  8. 20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结
  9. sap idoc java_如何使用IDOC从SAP系统获取数据
  10. 高德地图偏移android,关于JS接高德地图API,以及坐标偏移坐标转换(示例代码)