-------------- 2017.11.30更新 --------------
《阿里巴巴Java开发手册(终极版)》正式发布,这是史上内容最全、修正最为彻底的一个版本,并且增加了单元测试规约内容,这也是阿里官方对外发布的最后一个PDF版本,值得收藏。
《阿里巴巴Java开发手册》是阿里内部Java工程师所遵循的开发规范,涵盖编程规约、单元测试规约、异常日志规约、MySQL规约、工程规约、安全规约等,这是近万名阿里Java技术精英的经验总结,并经历了多次大规模一线实战检验及完善。这是阿里回馈给Java社区的一份礼物,希望能够帮助企业开发团队在Java开发上更高效、容错、有协作性,提高代码质量,降低项目维护成本。
点击下载《 阿里巴巴Java开发手册》(终极版): yq.aliyun.com/attachment/…
考试认证&在线代码检测:edu.aliyun.com/certificati…
IDE插件下载:github.com/alibaba/p3c
单元测试规约
单元测试有助于开发团队有效监测软件模块质量、促进代码深度优化,进而降低线上故障率,长期执行有助于提升项目迭代效率,减少重构成本。此次在终极版本中,阿里根据内部单元测试的实践经验,详细描述了单元测试的相关原则和重要建议:
- AIR原则:
A:Automatic,单元测试需要测试框架自动化执行,才有意义。
I:Independent,单元测试用例之间互相独立,不存在依赖关系。
R:Repeatable,单元测试可以被重复执行,且结果一致
- BCDE原则:
B:Border,边界值测试,包括循环边界、特殊取值、特殊时间点等。
C:Correct,正确的输入,并得到预期的结果。
D:Design,与设计文档相结合,来编写单元测试。
E:Error,强制错误信息输入(如:非法数据),并得到预期的结果。
IDE代码检测插件
自《阿里巴巴Java开发手册》正式版发布以来,Java开发者就一直关注何时推出IDE代码监测插件。经过研发和内部测试,现在插件终于要和大家见面了——10月14日,杭州云栖大会研发效能峰会场,阿里将正式对外开放插件及源码。
该插件在扫描代码后,将不符合《手册》的代码按block/critical/major三个等级显示在下方;实时编写代码时,还会给出智能提示,告诉你如何编写可以更优雅;对于历史代码,部分规则实现了批量一键修复的功能。是不是很方便?
「阿里巴巴编码规范」考试认证
阿里云大学结合《阿里巴巴Java开发手册》,推出了「阿里巴巴编码规范」认证,通过在线考试,检测你对手册中开发规范的掌握程度,并发放官方认证证书。
立即考试: edu.aliyun.com/certificati…
------------------------------------------
关于《阿里巴巴Java开发手册》
你是否曾因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作者:赵海平(花名:福贝):程序员是创造个性化作品的艺术家,但同时也是需要团队合作的工种。个性化应尽量表现在代码效率和算法方面,牺牲小我,成就大我。
拥抱规范,远离伤害!
开发的同学们赶紧行动起来,遵守代码规范,你好,我好,大家好!
关注云栖社区微信公众号: