阿里巴巴Java开发手册(详尽版)

摘自:https://yq.aliyun.com/articles/69327git

        -------------- 2018.6.6日更新 --------------程序员

阿里巴巴Java开发手册v1.4.0(详尽版)发布,新增16条设计规约。设计规约是根据阿里巴巴实际项目架构经验提炼而成,主要从UML图和架构设计原则来规定比较基础的软件设计理念,而且明确了超过什么样的阈值须要以什么样的方式来呈现设计思惟。github

 

点击下载《阿里巴巴Java开发手册》v1.4.0(详尽版):https://yq.aliyun.com/attachment/download/?id=5585算法

编码规范考试认证:https://edu.aliyun.com/certification/cldt02数据库

IDE插件下载:https://github.com/alibaba/p3c编程

 

代码的可读性是指代码让人容易阅读、理解、调试、可预料的程度。提升代码的可读性能够为代码阅读者节约时间和精力,提高团队协做效率。熟悉和遵照《阿里巴巴Java开发手册》的编程风格,那只是“标”,而代码可读性的“本”能够追溯到软件设计阶段。根据阿里巴巴内部的反馈声音来看,对于数据底层结构、状态图、以及敏捷开发相关的三条,共鸣感最强,那么详细点评一下。json

1. 数据底层结构后端

底层数据结构属于大厦的地基工程,若是地基不稳,那么上层去修正难度是至关大的,甚至是没法修正。因此设计规约提倡,存储方案和底层数据结构的设计得到评审一致经过,并沉淀成为文档。有缺陷的底层数据结构容易致使系统风险高,可扩展性差,重构成本因历史数据迁移、系统平滑过渡也会陡然增长,因此,存储方案和数据结构须要认真地进行设计和评审,生产环境提交执行后,须要进行double check。评审内容包括存储介质选型、表结构设计可否知足技术方案、存取性能和存储空间可否知足业务发展、表或字段之间的辩证关系、字段名称、字段类型、索引等;数据结构变动(如在原有表中新增字段)也须要进行评审经过后上线。安全

2. 状态图服务器

业务对象状态相关的编码错误是引发线上故障的一个重要导火索。多一个状态,少一个状态,若是没有历史设计文档沉淀,那么都是灾难性的。若是某个业务对象的状态超过3个,使用状态图来表达而且明确状态变化的各个触发条件。状态图的核心是对象状态,首先明确对象有多少种状态,而后明确两两状态之间是否存在直接转换关系,再明确触发状态转换的条件是什么。淘宝订单状态有已下单、待付款、已付款、待发货、已发货、已收货等。好比已下单与已收货这两种状态之间是不可能有直接转换关系的。

3. 敏捷开发

敏捷开发是当下流行的一种开发模式,相比传统软件生产流程,更加快速地交付。可是,敏捷开发适合于信任度好、理解力强、技术水平相对一致的创业型团队。可是在不少公司敏捷成为一个抓进度的适得其反式的借口。因此避免以下误解:敏捷开发 = 讲故事 + 编码 + 发布。敏捷开发是快速交付迭代可用的系统,省略多余的设计方案,摒弃传统的审批流程,但核心关键点上的必要设计和文档沉淀是须要的。

 
------------------------------------------

关于《阿里巴巴Java开发手册》

 

《阿里巴巴Java开发手册》是阿里内部Java工程师所遵循的开发规范,涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程规约、设计规约等,这是近万名阿里Java技术精英的经验总结,并经历了屡次大规模一线实战检验及完善。这是阿里回馈给Java社区的一份礼物,但愿可以帮助企业开发团队在Java开发上更高效、容错、有协做性,提升代码质量,下降项目维护成本。

阿里云大学结合《阿里巴巴Java开发手册》,推出了「阿里巴巴编码规范」认证,经过在线考试,检测你对手册中开发规范的掌握程度,并发放官方认证证书。当即考试:https://edu.aliyun.com/certification/cldt02 

 

你是否曾因Java代码规范版本纷杂而无所适从?

你是否想过代码规范能将系统故障率下降20%?

你是否曾因团队代码风格迥异而协同困难?

你是否正在review一些本来能够避免的故障?

你是否没法肯定本身的代码足够健壮? 

码出高效,码出质量!

相比C++代码规范业界已经达成共识,Java代码规范业界比较混乱,咱们期待此次发布的Java代码规范可以给业界带来一个标准,促使总体行业代码规范水平获得提升,最终可以帮助企业和开发者提高代码质量和下降代码故障率。

 

阿里出品,质量保证!

阿里Java技术团队一手打造出Dubbo、JStorm、Fastjson等诸多流行开源框架,部分已成为Apache基金会孵化项目;

阿里在Java后端领域支撑起全球访问量最大的服务器集群;

Java代码构建的阿里双11业务系统订单处理能力达到17.5万笔/秒;

到目前已累计数亿行高并发、高稳定性的最佳Java代码实践;

……

这次公开的Java开发手册正是出自这样的团队,近万名阿里Java技术精英的经验总结,并经历了屡次大规模一线实战检验及完善,铸就了这本高含金量的阿里Java开发手册。该手册以Java开发者为中心视角,划分为编程规约、异常日志规约、MYSQL规约、工程规约、安全规约五大块,再根据内容特征,细分红若干二级子目录。根据约束力强弱和故障敏感性,规约依次分为强制、推荐、参考三大类。此套规范不只能让代码一目了然, 更有助于增强团队分工与合做、真正提高效率。 

 

无规矩不成方圆 无规范不能协做

众所周知,制订交通法规表面上是要限制行车权,其实是保障公众的人身安全。试想若是没有限速,没有红绿灯,没有规定靠右行驶,谁还敢上路行驶。 

同理,对软件来讲,适当的规范和标准毫不是消灭代码内容的创造性、优雅性,而是限制过分个性化,以一种广泛承认的方式一块儿作事,下降故障率,提高协做效率。开发手册详细列举如何开发更加高效,更加容错,更加有协做性,力求知其然,更知其否则,结合正反例,提升代码质量。好比,异常日志处理时的各类不规范行为;集合转换的各类坑;建立线程池出现的等待队列OOM等。 

 

阿里技术资深大咖联袂推荐

阿里高级研究员多隆:工程师对于代码,必定要“精益求精”,不论从性能,仍是简洁优雅,都要具有“精益求精”的工匠精神,认真打磨本身的做品。 

阿里研究员毕玄:一个优秀的工程师和一个普通工程师的区别,不是如今满天飞的架构图,他的功底就是体如今他写的每一行代码上。 

阿里研究员玄难:代码是软件工程里面的产品设计、系统架构设计等工做的最后承载体,代码的质量决定了一切工做的成败。 

阿里巴巴B2B事业群CTO李纯:好的软件产品离不开工程师高质量的代码及相互间顺畅的沟通与合做。简单,适用的代码规约背后所传递的是技术上的追求卓越、协同合做的精神,是每一个技术团队不可缺失的重要利器。 

阿里研究员、HipHop做者:赵海平(花名:福贝):程序员是创造个性化做品的艺术家,但同时也是须要团队合做的工种。个性化应尽可能表如今代码效率和算法方面,牺牲小我,成就大我。 

 

拥抱规范,远离伤害!

开发的同窗们赶忙行动起来,遵照代码规范,你好,我好,你们好! 

相关文章
相关标签/搜索