热搜关键词: 电路基础ADC数字信号处理封装库PLC

pdf

阿里巴巴Java开发手册--泰山版

  • 1星
  • 2021-05-29
  • 2.77MB
  • 需要1积分
  • 14次下载
标签: JAVA

JAVA

《阿里巴巴Java开发手册》的愿景是码出高效,码出质量。它结合作者的开发经验和架构历程,提炼阿里巴巴集团技术团队的集体编程经验和软件设计智慧,浓缩成为立体的编程规范和最佳实践。众所周知,现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程相关的知识点,其他维度的知识点也会影响软件的最终交付质量,比如,数据库的表结构和索引设计缺陷可能带来软件的架构缺陷或性能风险;单元测试的失位导致集成测试困难;没有鉴权的漏洞代码易被黑客攻击等。所以,本手册以开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约七个维度,每个条目下有相应的扩展解释和说明,正例和反例,全面、立体、形象地帮助到开发者的成长和团队代码规约文化的形成。

从严格意义上讲,《阿里巴巴Java开发手册》超越了Java语言本身,明确作为一名合格开发者应该具备的基本素质,因此本手册适合计算机相关行业的管理者和研发人员、高等院校的计算机专业师生、求职者等阅读,希望成为大家如良师益友般的工作手册、工具字典和床头书。

前言
《Java 开发手册》是阿里巴巴集团技术团队的集½智慧结晶和经验总结,经历了多次大规模一
线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理
成册,½前的版本是泰山版。现代½件行业的高速发展对开发者的综合素质要求越来越高,因为不仅
是编程知识点,其它维度的知识点也会½响到½件的最终交付质量。比如:数据库的表结构和索引设
计缺陷可½带来½件上的架构缺陷或性½风险;工程结构混乱导致后续维护艰难;没有鉴权的漏洞代
码易被黑客攻击等等。所以本手册以
Java
开发者为中心视角,划分为编程规约、异常日志、单元测
试、安全规约、MySQL 数据库、工程结构、设计规约七个维度,再根据内容特征,细分成若干二级
子目½。另外,依据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。在延伸信息
中,“说明”对规约做了适½扩展和解释;“正例”提倡什么样的编码和实现方式;“反例”说明需
要提防的雷区,以及真实的错误案例。
手册的愿景是码出高效,码出质量。现代½件架构的复杂性需要协同开发完成,如½高效地协
同呢?无规矩不成方圆,无规范难以协同,比如,制订交通法规表面上是要限制行½权,实际上是保
障公众的人身安全,试想如果没有限速,没有红绿灯,谁还敢上路行驶?对½件来说,适½的规范和
标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起
做事,提升协½效率,降½沟通成本。代码的字里行间流淌的是½件系统的血液,质量的提升是½可
½少踩坑,杜绝踩重复的坑,切实提升系统稳定性,码出质量。
我们已经在
2017
杭州云栖大会上发布了配套的
Java
开发规约
IDE
插件,
下½½量达到
152
万人
次,阿里云效也集成了代码规约扫描引擎。次年,发布
36
万字的配套详解图书《码出高效》,本书
秉持“图胜于表,表胜于言”的理念,深入浅出地将计算机基础、面向对象思想、JVM 探源、数据
结构与集合、并发与多线程、单元测试等知识客观、立½地呈现出来。紧扣学以致用、学以精进的目
标,结合阿里巴巴实践经验和故障案例,与底层源码解析融会贯通,娓娓道来。
《码出高效》和《Java
开发手册》书籍版所得收入均捐赠公益事情,希望用技术情怀帮助更多的人。
目½
前 言
...................................................................................................................................................................
一、编程规约
................................................................................................................................................... 1
(一)
½名风格
.......................................................................................................................................... 1
(二)
常量定义
.......................................................................................................................................... 4
(三)
代码格式
.......................................................................................................................................... 5
(四) OOP
规约
........................................................................................................................................ 7
(五)
日期时间
........................................................................................................................................11
(六)
集合处理
........................................................................................................................................12
(七)
并发处理
........................................................................................................................................17
(八)
控制语句
........................................................................................................................................20
(九)
注释规约
........................................................................................................................................24
(十)
其它
................................................................................................................................................25
二、异常日志
.................................................................................................................................................27
(一)
错误码
.............................................................................................................................................27
(二)
异常处理
.........................................................................................................................................28
(三)
日志规约
.........................................................................................................................................30
三、单元测试
.................................................................................................................................................33
四、安全规约
.................................................................................................................................................35
五、MySQL 数据库
.......................................................................................................................................36
(一)
建表规约
........................................................................................................................................36
(二)
索引规约
........................................................................................................................................37
(三) SQL
语句
.......................................................................................................................................39
(四) ORM
映射
.....................................................................................................................................40
六、工程结构
.................................................................................................................................................42
(一)
应用分层
........................................................................................................................................42
(二)
二方库依赖
....................................................................................................................................43
(三)
服务器
............................................................................................................................................44
七、设计规约
.................................................................................................................................................46
1:版本历史 ..............................................................................................................................................49
2:专有名词解释 ......................................................................................................................................51
3:错误码列表 ..........................................................................................................................................52
(注:浏览时请½用
PDF
左侧导航栏)
Java
开发手册
版本号
1.6.0
制定团队
阿里巴巴与
Java
社区开发者
更新日期
2020.04.22
备注
泰山版,首次发布错误码统一方案
一、 编程规约
(一)
½名风格
1.
【强制】代码中的½名均不½以下划线或美元符号开始,也不½以下划线或美元符号结束。
反例:_name
/ __name / $name / name_ / name$ / name__
2.
【强制】
所有编程相关的½名严禁½用拼音与英文混合的方式,
更不允许直接½用中文的方式。
说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,纯拼音½名方式更要避免采用。
正例:ali
/ alibaba / taobao / cainiao/ aliyun/ youku / hangzhou
等½际通用的名称,可视同英文。
反例:DaZhePromotion
[打折] / getPingfenByName() [评分] / int
某变量
= 3
3.
【强制】类名½用
UpperCamelCase
风格,½以下情½例外:DO
/ BO / DTO / VO / AO /
PO / UID
等。
正例:ForceCode
反例:forcecode
/
UserDO /
HtmlDTO /
XmlService
/
/
TcpUdpDeal / TaPromotion
TCPUDPDeal / TAPromotion
/ UserDo
/ HTMLDto
/ XMLService
4.
【强制】方法名、参数名、成员变量、局部变量½统一½用
lowerCamelCase
风格。
正例:
localValue / getHttpMessage() / inputUserId
5.
【强制】常量½名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
正例:MAX_STOCK_COUNT
/ CACHE_EXPIRED_TIME
反例:MAX_COUNT
/ EXPIRED_TIME
6.
【强制】½象类½名½用
Abstract
Base
开头;异常类½名½用
Exception
结尾;测试类
½名以它要测试的类的名称开始,以
Test
结尾。
7.
【强制】类型与中括号紧挨相连来表示数组。
正例:定义整½数组
int[] arrayDemo;
反例:在
main
参数中,½用
String args[]来定义。
8.
【强制】POJO
类中的任½布尔类型的变量,½不要加
is
前缀,否则部分框架解析会引起序列
化错误。
说明:在本文
MySQL
规约中的建表约定第一条,表达是与否的值采用
is_xxx
的½名方式,所以,需要在
<resultMap>设½从 is_xxx
xxx
的映射关系。
1/57
Java
开发手册
反例:定义为基本数据类型
Boolean isDeleted
的属性,它的方法也是
isDeleted(),框架在反向解析的时
候,“误以为”对应的属性名称是
deleted,导致属性获取不到,进而抛出异常。
9.
【强制】包名统一½用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一½用
单数½式,½是类名如果有复数含义,类名可以½用复数½式。
正例:应用工具类包名为
com.alibaba.ei.kunlun.aap.util、类名为 MessageUtils(此规则参考 spring
框架结构)
10.
【强制】
避免在子父类的成员变量之间、
或者不同代码块的局部变量之间采用完全相同的½名,
½可读性降½。
说明:子类、父类成员变量名相同,即½是
public
类型的变量也是½够通过编译,而局部变量在同一方法
内的不同代码块中同名也是合法的,½是要避免½用。对于非
setter/getter
的参数名称也要避免与成员变
量名称相同。
反例:
public class
ConfusingName
{
public int
stock;
//
setter/getter
的参数名称,不允许与本类成员变量同名
public void
get(String
alibaba)
{
if
(condition) {
final int
money
=
666;
// ...
}
for
(int
i
=
0;
i
<
10;
i++)
{
//
在同一方法½中,不允许与其它代码块中的
money
½名相同
final int
money
=
15978;
// ...
}
}
}
class
Son
extends
ConfusingName
{
//
不允许与父类的成员变量名称相同
public int
stock;
}
11.
【强制】杜绝完全不规范的缩写,避免望文不知义。
反例:AbstractClass“缩写”½名成
AbsClass;condition“缩写”½名成 condi,此类随意缩写严重降
½了代码的可阅读性。
12.
【推荐】为了达到代码自解释的目标,任½自定义编程元素在½名时,½用½量完整的单词组
合来表达。
正例:
JDK
中,
对某个对象引用的
volatile
字段进行原子更新的类名为:
AtomicReferenceFieldUpdater。
反例:常见的方法内变量为
int a;的定义方式。
2/57
展开预览

猜您喜欢

评论

登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
×