阿里巴巴Java开发手册(终极版)

别人都说我们是码农,但我们知道,自己是个艺术家。也许我们不过多在意自己的外表和穿着,但我们不羁的外表下,骨子里追求着代码的美、质量的美。而代码规约其实就是一个对美的定义。

《阿里巴巴Java开发手册》系统性地从编程、数据库、异常日志、工程结构、安全、单元测试六大方面,总结出优秀Java开发者必备的技术素养。时值手册发布一周年之际,阿里官方对外正式公开《阿里巴巴Java开发手册》终!极!版!!!

该版本将是阿里官方对外释放的最后一个PDF版本,也是史上内容最全、修正最为彻底的一个版本,并且史无前例地增加了单元测试规约,绝对值得珍藏。

如何快速下载?

关注阿里技术微信公众号,回复“手册”两字即可免费下载。也可以加QQ群274435854进行快速下载。

单元测试规约,优秀开发者的必备技能

单元测试是一件老生常谈,深入人心的事情,但是喜欢写单元测试的开发同学少之又少。单元测试似乎是功不在当下的事情,快速完成需求成为了王道。在工作量评估的时候,如果开发同学说需要花上若干天时间来写单测,产品可能就会磨刀霍霍杀来。

尽管如此,单元测试是一件有情怀,有技术素养,有远期收益的工作。它能够有效监测软件模块质量、促进代码深度优化,进而降低线上故障率,长期执行有助于提升项目迭代效率,并增加重构自信,减少重构成本。简直就是bug灭绝器有木有!

所以此次在终极版本中,阿里根据内部单元测试的实践经验,详细描述了单元测试的相关原则和重要建议。

AIR原则:

A:Automatic,单元测试需要测试框架自动化执行,才有意义。

I:Independent,单元测试用例之间互相独立,不存在依赖关系。

R:Repeatable,单元测试可以被重复执行,且结果一致。

BCDE原则:

B:Border,边界值测试,包括循环边界、特殊取值、特殊时间点等。

C:Correct,正确的输入,并得到预期的结果。

D:Design,与设计文档相结合,来编写单元测试。

E:Error,强制错误信息输入(如:非法数据),并得到预期的结果。

更多关于单元测试的内容、优化项目,欢迎查阅《阿里巴巴Java开发手册》终极版。

终极版目录

一劳永逸:官方自动化IDE检测插件即将问世

为了帮助开发者更好提高编码效率,阿里巴巴基于手册内容,独立研发一套自动化IDE检测插件。该插件在扫描代码后,将不符合《手册》的代码按block/critical/major三个等级显示在下方;实时编写代码时,还会给出智能提示,告诉你如何编写可以更优雅;对于历史代码,部分规则实现了批量一键修复的功能。是不是很方便?

据悉,10月14日,杭州云栖大会研发效能峰会场,阿里将正式对外开放插件及源码。届时,阿里技术公众号将第一时间公开免费下载地址。

手册虽有终极版,技术没有终点站

编码规范的价值在业内有着广泛的共识,但在现实中却被否定得一塌糊涂。工程师曾经最引以为豪的代码,因为编码规范的缺失、命名的草率而全面地摧毁了彼此的互信,并严重地制约了彼此的高效协同。工程师一边吐槽别人的代码,一边写着可能遭受同样命运的代码,不时的推倒重建或心惊胆战的维护似乎成了工作的主旋律。

《阿里巴巴Java开发手册》的使命,在于帮助工程师脱离繁琐,重燃技术激情。业务会变、玩法会变、需求会变,做好代码质量的决心永不会变。

手册虽有终极版,技术没有终点站。不断打磨技术,成为更好的自己,我们共勉。

你对《阿里巴巴Java开发手册》终极版有哪些想法或建议?欢迎在留言区一起交流讨论哦。

原文发布于微信公众号 - Java技术栈(javastack)

原文发表时间:2017-09-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏贺嘉的专栏

新增线下、APP 、公众号多处入口,小程序会再火起来么?(内有福利)

从本次小程序开放的6大能力来看,比开放个人开发者注册,更为重要的开放了公众号,APP,线下三类小程序入口,对于开发者而言意味着用更多方式触达海量用户。

2.4K0
来自专栏腾讯技术工程官方号的专栏

TEG Cheers | 腾讯技术工程运维技术沙龙精彩回顾(内置现场视频)

941
来自专栏Java架构师学习

Java开发技术大揭底——让你认知自己技术上的缺陷,成为架构师一、分布式架构体系二、微服务架构三、阅读源码、分析源码四、工具的使用五、性能优化

一、分布式架构体系 分布式怎么来的。传统的电信、银行业,当业务量大了之后,普通服务器CPU/IO/网络到了100%,请求太慢怎么办?最直接的做法,升级硬件,反正...

2989
来自专栏即时通讯技术

开源IM工程“蘑菇街TeamTalk”的现状:一场有始无终的开源秀

随着云IM的发展,已吸引越来越多有IM需求的APP接入。但考虑到云IM无论从商业模式还是运营模式上,还需经过多年的沉淀,才可能真正实现客户与服务商的运营和服务良...

4702
来自专栏企鹅号快讯

如何从零开始学习软件测试

很多朋友想要入行软件测试,但是都不知道该怎么学。 抽个时间简单的给大家说下,对于0基础的朋友,应该怎么去学习软件测试。 学习软件测试有2条路可以选。 最省事的当...

3038
来自专栏知识分享

1-51单片机开发板介绍(所讲内容,功能介绍)

1903
来自专栏企鹅号快讯

成为好程序员必须避免的5个坏习惯

当你开始成为一个程序员的时候,在编程的时候很容易陷入下面所述的一些坏习惯。 作为一名程序员,犯错误不可避免,这是你学习编程课程中的一部分。在你的职业生涯中你会犯...

1785
来自专栏ThoughtWorks

在医疗健康领域引入软件开发安全实践

BSI简介 “Build Security in DNA”简称BSI,是在开发过程中内置安全的软件开发实践。 顾名思义,BSI是要将各种安全措施从早期就纳入到软...

2754
来自专栏数据猿

【案例】光大银行:风险一体化项目实施

随着大数据和互联网+时代来临,大数据成为商业银行在市场竞争重要手段之一。新的市场和业务变化推动商业银行向智能化转型。银行信用卡中心数据外延大,与个人的结合点多,...

3184
来自专栏程序员互动联盟

为什么linux这么火?

linux自从诞生之初,就受到编程爱好的热宠,到现在也是如此,前段时间linux创始人骂人的一句话,都成了互联网传播的热词,这从侧面说明了linux的火热程度。...

3636

扫码关注云+社区