阿里巴巴java编程规范

目录

一、编程规约1

(一) 命名规约1

(二) 常量定义3

(三) 格式规约4

(四) OOP 规约6

(五) 集合处理 10

(六) 并发处理 12

(七) 控制语句 15

(八) 注释规约 16

(九) 其它 17

二、异常日志 19

(一) 异常处理 19

(二) 日志规约 20

三、MySQL 规约 22

(一) 建表规约 22

(二) 索引规约 24

(三) SQL 规约 26

(四) ORM 规约 27

四、工程规约 28

(一) 应用分层 28

(二) 二方库规约 29

(三) 服务器规约 31

五、安全规约 32

(注:全文浏览时请使用PDF左侧导航栏)

阿里巴巴Java开发手册

Java开发手册

版本号 制定团队 更新日期 备注

1.0.0 2017.2.9 正式版

1.0.1 阿里巴巴集团技术团队 2017.2.13 修正部分描述

1.0.2 2017.2.20 修正部分示例

一、编程规约

(一)命名规约

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[]的方式来定义。

——禁止用于商业用途,

阿里巴巴Java开发规范线程池_阿里巴巴java编程规范.pdf相关推荐

  1. java线程池1001java线程池_深入浅出Java(Android )线程池ThreadPoolExecutor

    前言 关于线程池 在Java/Android开发中,设计到并发的请求,那基本上是离不开线程池了.用线程池的好处: 1.减少线程频繁创建.销毁的开销: 2.好控制并发量,降低OOM的可能,至于原因文中会 ...

  2. java如何关闭线程池_如何优雅的关闭Java线程池

    ⾯试中经常会问到,创建⼀个线程池需要哪些参数.线程池的工作原理,却很少会问到线程池如何安全关闭的. 也正是因为⼤家不是很关注这块,即便是⼯作三四年的⼈,也会有因为线程池关闭不合理,导致应用⽆法正常st ...

  3. java 手编线程池_死磕 java线程系列之自己动手写一个线程池

    欢迎关注我的公众号"彤哥读源码",查看更多源码系列文章, 与彤哥一起畅游源码的海洋. (手机横屏看源码更方便) 问题 (1)自己动手写一个线程池需要考虑哪些因素? (2)自己动手写 ...

  4. java 关闭阻塞线程池_如果优雅地关闭ExecutorService提供的java线程池

    每一个线程都会占用系统资源,因此线程池的关闭与清理同样重要,本文介绍我们如何优雅地关闭线程池. 一. ExecutorService中关闭线程池的方法 1. shutdown() 停止接收新任务,原来 ...

  5. java class文件常量池_《Java虚拟机原理图解》 1.2.3、Class文件中的常量池详解(下)...

    Java内存区域         1.程序计数器(Program Counter Register)(线程私有的)         2.Java虚拟机栈 (Java Virtual Machine S ...

  6. 武汉java开发工资一般多少_武汉Java开发工资是否还会增长?工资为什么那么高?...

    武汉Java开就业薪资多少?一直是很多学习的人关心的问题,毕竟,大家花费时间和精力学习Java都是希望能收获一份满意的高薪工作.那么,学习武汉Java开发后薪资一般有多少呢?下面,我给大家分析一下. ...

  7. java开发组态软件下载_基于JAVA的煤矿安全监控系统组态软件设计研究.pdf

    ·218· 工矿自动化 基于JAVA的煤矿安全监控系统组态软件设计 鲍毅华钢 (中国矿业大学信电学院 江苏徐州 221008) [摘要]本文通过对当前煤矿安全监控系统组态存在的问题和发展趋势的问题,提 ...

  8. java开发的游戏测试_用java编写。模拟一个简单的测试打字速度的游戏

    请高手帮我看看我的程序哪里出现错误了,输出打字速度时出错importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.A ...

  9. java开发成语的过程_基于JAVA的成语词典接口调用代码实例

    基于JAVA的成语词典接口调用代码实例 接口描述:基于JA V A的成语词典接口调用代码实例 接口平台:聚合数据 import java.io.BufferedReader; import java. ...

最新文章

  1. AI一分钟 | 马斯克:特斯拉内部有人故意搞破坏;亚马逊推出酒店定制版Alexa
  2. 数学建模学习笔记——聚类模型
  3. 在数据准备区中允许使用的数据结构有哪些, 各有什么优点?
  4. Scrapy添加随机ip
  5. 类成员与方法访问控制从严
  6. Step by Step 使用HTML5开发一个星际大战游戏(1)
  7. Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.9
  8. python随机生成一个地区地址_利用Python生成随机的IP地址
  9. 辨异 —— Java 中 String 的相等性比较
  10. bzoj 3367: [Usaco2004 Feb]The Big Game 球赛(DP)
  11. IEC60958/61937协议
  12. java kdj macd_很好用的KDJ与MACD结合指标
  13. 蜜蜂科技Bee+创始人贾凡、OFO创始人戴威入选高山大学2018级名单
  14. 折弯机使用说明书_折弯机操作图解法-如何使用折弯机
  15. 见缝插针小程序php,抖音小程序怎么开通
  16. csv文件用excel打开乱码问题
  17. 机器学习- MACHINE LEARNING
  18. 彻底读懂行为经济学名著《思考,快与慢》
  19. eclipse项目出现红色叉叉解决方案
  20. 根据拼音首字母筛选人名 1

热门文章

  1. Vue项目保存代码之后页面自动更新
  2. 【Redis】批量删除Key的三种方式
  3. XToolsCRM的“企业维生素”理念让忙于不忙只在一瞬之间
  4. Tomcat搭建配置
  5. 记录pyinstaller打包过程中遇到的坑
  6. next_permutation、prev_permutation以及is_permutation使用
  7. 销量破千万,革命性硬件是如何炼成的?
  8. 关于向女孩表白的建议
  9. 前端链接地址中‘+‘被编码为%20(本为%2B)问题
  10. JavaScript帝国战争-创建对象篇