标签:.class 异常处理 eth nap 受害者 nlog 基于 boolean 粘贴
目录
前言 ...................................................................................................................................................................................................1
一、 编程规约................................................................................................................................................................................2
(一) 命名规约 ................................................................................................................................................................2
(二) 常量定义 ................................................................................................................................................................4
(三) 格式规约 ................................................................................................................................................................5
(四) OOP 规约 ................................................................................................................................................................7
(五) 集合处理 .............................................................................................................................................................11
(六) 并发处理 .............................................................................................................................................................13
(七) 控制语句 .............................................................................................................................................................16
(八) 注释规约 .............................................................................................................................................................17
(九) 其它 .......................................................................................................................................................................18
二、异常日志.............................................................................................................................................................................20
(一) 异常处理 .............................................................................................................................................................20
(二) 日志规约 .............................................................................................................................................................21
三、 MySQL 规约.......................................................................................................................................................................23
(一) 建表规约 .............................................................................................................................................................23
(二) 索引规约 .............................................................................................................................................................25
(三) SQL 规约 .............................................................................................................................................................27
(四) ORM 规约 .............................................................................................................................................................28
四、工程规约.............................................................................................................................................................................29
(一) 应用分层 .............................................................................................................................................................29
(二) 二方库规约.........................................................................................................................................................30
(三) 服务器规约.........................................................................................................................................................32
五、安全规约.............................................................................................................................................................................33
附 1:版本历史 .........................................................................................................................................................................34
附 2:本手册专有名词 ...........................................................................................................................................................34
附 3:法律声明 .........................................................................................................................................................................34
(注: 全文浏览时请使用 PDF 左侧导航栏)
阿里巴巴 Java 开发手册
——禁止用于商业用途,违者必究—— 1 / 34
前言
《 阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体经验总结,经历了
多次大规模一线实战的检验及不断的完善,反馈给广大开发者。 现代软件行业的高速
发展对开发者的综合素质要求越来越高, 因为不仅是编程知识点,其它维度的知识点
也会影响到软件的最终交付质量。 比如: 数据库的表结构和索引设计缺陷可能带来软
件上的架构缺陷或性能风险; 工程结构混乱导致后续维护艰难;没有鉴权的漏洞代码
被黑客攻击等等。 所以本手册以 Java 开发者为中心视角,划分为编程规约、异常日志
规约、 MySQL 规约、工程规约、安全规约五大块,再根据内容特征,细分成若干二级子
目录。根据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。 对于
规约条目的延伸信息中,“ 说明” 对内容做了引申和解释; “ 正例” 提倡什么样的编
码和实现方式; “ 反例” 说明需要提防的雷区, 以及真实的错误案例。
本手册的愿景是码出质量、码出高效。 代码的字里行间流淌的是软件生命中的血
液, 质量的提升是尽可能少踩坑, 杜绝踩重复的坑, 切实提升质量意识。另外, 现代
软件架构都需要协同开发完成,高效协作即降低协同成本, 提升沟通效率, 所谓无规
矩不成方圆,无规范不能协作。 众所周知,制订交通法规表面上是要限制行车权,实
际上是保障公众的人身安全。试想如果没有限速,没有红绿灯,谁还敢上路行驶。对
软件来说,适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度
个性化,以一种普遍认可的统一方式一起做事,提升协作效率。
《 阿里巴巴 Java 开发手册》 ,开放包容地认真听取社区、博客、论坛的反馈,及
时修正, 保持与时俱进。请关注手册末页的“ 阿里技术” 和“ 云栖社区”公众号获取
最新版。
阿里巴巴 Java 开发手册
——禁止用于商业用途,违者必究—— 2 / 34
Java 开发手册
1.1.0 | 阿里巴巴集团技术团队 | 2017.2.27 | 增加前言和专有名词说明, 修正部分描述。 |
1.1.1 | 2017.3.31 | 修正页码总数和部分示例。 |
一、 编程规约
(一)命名规约
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. 【强制】中括号是数组类型的一部分,数组定义如下: