写点什么

《码出高效:Java 开发手册》背后的故事

2019 年 1 月 07 日

《码出高效:Java开发手册》背后的故事

2018 年 12 月 22 日,由博文视点组织的《码出高效:Java 开发手册》作者见面会暨签售仪式在北京举行,InfoQ 对书籍作者孤尽(杨冠宝)、鸣莎(高海慧)进行了采访,了解了此书出版背后的一些细节。


《码出高效:Java 开发手册》由电子工业出版社于 2018 年 10 月份首次出版发行。本书结合一线的开发实践以及 JDK 中的设计理念,是面向初学者的 Java 学习指南,也是 Java 编码的最佳实践。同时,它也是之前阿里发布的《Java 开发手册》中代码规约的来龙去脉的一个全面梳理,解释规约是怎么来的。



《码出高效》最早在 2018 年 9 月杭州云栖大会上宣布,包括马云、行癫、鲁肃都为该书写了推荐,该书的编委会包括毕玄、索尼、多隆等阿里的技术高管,也对该书的问世起了大力推动作用。指南 2017 年初,阿里发布《阿里巴巴 Java 开发手册》,首次公开阿里官方 Java 代码规范标准。手册涵盖编程规约、单元测试规约、异常日志规约、MySQL 规约、工程规约、安全规约等,这是近万名阿里 Java 技术精英的经验总结,并经历了多次大规模一线实战检验及完善。同时阿里也发布了开源的 Java 规约 IDE 插件p3c,以帮助企业和个人使用规约。


Java 开发手册的作者孤尽是阿里集团代码中心的负责人,在阿里历任技术研发、架构师、部门主管等不同角色,承担过双十一、国际化、代码中心等大型项目,在大数据、高并发、分布式、代码效能等领域均有较深造诣。书籍合作作者鸣莎是阿里云资深开发工程师,先后在阿里集团 B2B 技术部和阿里云任职,承担过商业化、双十一、智能调度及 10 亿/天的信息采集系统建设等大型项目。


据孤尽介绍,阿里集团目前的代码量十分庞大,所有代码加起来容量达到 35TB。阿里将代码视为最重要的数字资产之一,每次投资并购后做的第一件时间就是拿到对方的代码。如此庞大的代码库,离不开流程和标准的制定,但 Java 社区里并没有一份比较全面的,能适合阿里集团使用的代码规范,于是集团决定打造自己的 Java 规约并在全集团内推广,这就是 Java 开发手册诞生的背景。


阿里在 Java 领域钻研很深,不仅使用 Java 开发的全球访问量最大的服务器集群,还推出了自己的 AliJVM,发布了如 Dubbo、JStorm、fastjson 等 Java 开源项目,最近还连续两年获得 JCP 委员会席位,在国际 Java 社区的影响力也日渐扩大,阿里将规约对外公布,也可视为对 Java 社区的回馈。自规约公布并发布英文版本后,也得到了国外开发者的赞誉。


目前,阿里 Java 规约已经在社区得到广泛的应用,据孤尽介绍,规约 p3c 插件在外部下载量超过 56 万,并且已有一些大公司采用。在阿里内部,规约已经覆盖菜鸟、蚂蚁金服,成为整个阿里经济体规范,p3c 插件已经覆盖了 90%的 Java 团队,日活超过 40%,累计扫描出的潜在错误高达 1 亿个。


不过,代码规范的推广并不容易,即使是在阿里内部。因为有些团队有自己的规范,在不同规范之间切换需要成本,而切换之后对其本身在短期内很难看到明显的收益。最终,这个规范还是在集团的技术高层的强力推动下执行下去了,现在阿里招进的 Java 新人,在培训的时候第一课就是学习规约。阿里还打造了配合规约的认证考试,不仅集团内部要考,还对外部开放了。


在书籍的最后,孤尽提到,要在团队内部推广规范,需要做到三点:


  • 立法透明:规约的每一条应该尽量由团队讨论得出,达成共识,规约还要根据技术的发展而变化;

  • 执法坚定:需要用强有力的约束来保证规约得到遵守,也要通过软性的文化建设来培养对代码质量的重视;

  • 组织支持:规约是一个管理决定,在推进过程中经常遇到各种抵触和困难,需要组织坚定推进的决心,给予权限和资源等方面的支持。


在 9 月份的云栖大会上发布《码出高效》书籍的时候,团队还宣布书籍的收入将全部捐献给公益项目,资助残障人士学习编程。孤尽等也希望这本书能帮助到更多喜欢编程的人,促进 Java 生态的健康发展。


2019 年 1 月 07 日 10:006996
用户头像

发布了 164 篇内容, 共 91.7 次阅读, 收获喜欢 381 次。

关注

评论

发布
暂无评论
发现更多内容

平均响应1000ms到200ms,PHP和Go那家强?

拖地先生

php 架构 性能优化 后台开发 运维

求稳不得

孙苏勇

职业 发展 职场

越是困难,越是要做有分析判断能力的人

霍太稳@极客邦科技

创业 团队管理 个人成长

申请鲲鹏920测试机试水+编译nginx

草宝虫

鲲鹏920 centos7 nginx编译 armv8

凡事必先骑上虎背

ikook

学习 态度 方法论

数据分析师应该了解的数据湖

数据社

大数据 数据仓库 数据湖 数据分析

微服务架构深度解析与最佳实践 - 第七部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

微服务架构深度解析与最佳实践(全篇汇总)

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

归去来兮:递归

曲镇

算法

微服务架构深度解析与最佳实践-第一部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

微服务架构深度解析与最佳实践 - 第三部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

黄金思维圈,养成透过现象看本质的能力

非著名程序员

读书笔记 程序员 程序人生 提升认知

程序员职业生涯的八点感想

池建强

程序员 职业

2019 年

贾献华

2020 2019 总结 日历 计划

小程序的当下和未来可能 | GMTC.2019深圳站演讲文稿

崔红保

小程序 uni-app

浅谈数据中台

数据社

大数据 数据中台 数据仓库

一个运营经理人的工作两周年总结

霍太稳@极客邦科技

高效工作 身心健康 项目管理 自我管理

最近看了两本书:The Rules of Life 和 Make Big Happen

霍太稳@极客邦科技

创业 团队管理 自我管理

一文讲清楚 MySQL 事务隔离级别和实现原理,开发人员必备知识点

古时的风筝

MySQL 数据库 事务隔离级别 mysql事务 数据库事务

一个独立开发者,他是如何做到月入 20 万的?

非著名程序员

程序员 独立开发者 副业赚钱 开发者 程序人生

聊聊:Python

谢烟客

Python 人工智能 编程

【译】Rust 开发者的2019

Michael Yuan

程序员 rust

微服务架构深度解析与最佳实践 - 第四部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

两边夹的应用

孙苏勇

算法 积水问题 两边夹

阿里笔记之数据模型

迹_Jason

大数据

微服务架构深度解析与最佳实践 - 第六部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

亚马逊云 AWS LightSail 搭建高性能 LNMP 环境并安全部署 Wordpress

小蚂蚁(Snow Hide)

Nginx PHP-FPM Wordpress 部署 SELinux 安全上下文配置 亚马逊云 AWS Lightsail 安全

微服务架构深度解析与最佳实践-第二部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

微服务架构深度解析与最佳实践 - 第五部分

kimmking

微服务 微服务架构 最佳实践 深度解析 高可用

两边夹的应用二

孙苏勇

算法 两边夹 重排序 函数式接口 Lambda

你不是迷茫,只是缺乏目标

ikook

学习 身心健康 方法 自我管理

《码出高效:Java开发手册》背后的故事-InfoQ