《码出高效:Java 开发手册》书名中的“码”既是动词,也是名词,希望我们在“码” 出高效的同时编写出高质量的代“码”。本书从立意到付梓,历时超过两年,期间推翻数次写作思路,历经曲折与艰辛,只希望为时代奉献一本好书,打造中国计算机民族标杆图书。愿这本书能陪伴在众多开发工程师的身边,大家一起进步、一起成长、一起感受编程的魅力。
本书缘起
这本书源于影响了全球250万名开发工程师的《阿里巴巴Java开发手册》(简称《手册》)。2017年2月9日,《手册》以PDF文件的方式正式发布第一个版本。一经公布,在各大网络平台引发热议,堪称中国人自己原创的Java编程规范,甚至走进硅谷,世界开始听到中国程序员的声音。2017年杭州云栖大会开源此手册配套的扫描插件后,一度攀升至世界第一,已经有45万名开发工程师直接下载,数以千计的企业进行部分修订后在内部推行。《手册》在研发效能、人才培养与系统稳定性领域都产生了巨大而深远的影响,已经成为重要的开发基础标准文件。
从团队协作角度来说。虽然别人都说开发工程师是搬砖的码农,但我们知道自己是追求个性的艺术家。我们骨子里追求着代码的美、系统的美、设计的美,代码规约其实就是一个对程序美的定义。曾经程序员最引以为豪的代码,却因为代码规约的缺失严重制约了相互之间的高效协同,频繁的系统重构和心惊胆战的维护似乎成了工作的主旋律,那么如何走出这种怪圈呢?众所周知,互联网公司的效能是企业的核心竞争力,体现在开发领域上,其实就是沟通效率和研发效率。本书的书名“码出高效”指的就是高效沟通与协作。大雁是一种非常讲究团队配合的鸟类,它们飞翔的队形可以有效地减少空气阻力,所以封面选择大雁作为背景,传递团队沟通与协作的理念,顺利达到共同的目标。
从个人发展角度来说。在计算机编程日益普及的今天,程序员群体日益壮大,本书以初级入门、中级进阶、高级修炼为目标,指导工程师的成长之路。涵盖计算机领域基础知识、面向对象理念、数据结构与集合、高并发多线程、异常和日志以及单元测试等多个方面,讲解由浅入深,囊括了一名开发工程师应具备的基本素质。本书以计算机民族标杆图书为自我要求,追求极致,打磨精品,目的是使读者在计算机综合素质上有大幅的提升。
从系统稳定角度来说。稳定是基础设施的关键目标,也是每个开发工程师考核中的重要指标之一。本书搜集线上的真实故障,经过整理后与相应的知识点结合在一起进行讲解,身临其境,阐述了知其不然的背后逻辑,提出更好的实现方案,最终以技术解决技术问题。
本书内容
本书共包括9章,每章的主要内容如下:
第1章从计算机基础知识说起,介绍基础的0与1表示与位运算、字符集、CPU与内存、网络传输与信息安全基础知识,目的是为后文打下知识基座。
第2章走入面向对象的世界,介绍具有划时代意义的编程思想理念,覆写、重载等重要概念含义,类、方法等基础模块规范。
第3章聊聊代码风格,针对命名、代码展示、控制语句和注释等进行分类定义。虽然代码风格不影响程序运行和执行效率,但是对于团队高效协作来说具有重要意义。通过践行本章,读者可以顺其自然地写出可读性强、可维护性好的优雅代码。
第4章揭开Java的神秘面纱,探讨底层JVM核心。从字节码说起,分析类加载的过程,并结合内存布局,讲解对象创建与垃圾回收等知识点。
第5章首先归纳了系统中各类的异常,以及定义各种异常的处理方式,然后定义了日志使用规范,以达到监控运行状况,回溯异常等目的。
第6章是重点章节,以数据结构为基础,引申至集合框架,再到重点集合源码分析,最后介绍高并发集合框架,目的是让读者对集合的了解成竹在胸,运用得心应手。尤其是对于集合中使用到的红黑树特性,经过一步步分析,相信使读者不再发怵于树的平衡性与左右旋转。
第7章也是重点章节,走进并发与多线程。由并发与并行等基础概念开始,引申到线程安全,介绍几种常见的锁实现,然后讲解线程同步方案,最后扩展到如何正确使用线程池,如何深度解析安全ThreadLocal的安全使用等。目的是让读者深入理解并且安全规范地实现并发编程,得心应手地处理好高并发多线程问题,提高生产效率。
第8章分析了单元测试的重要意义、基本原则、开发规范和评判标准。单元测试的重要意义在于它是一件有情怀、有技术素养、有长期收益的工作,是保证软件质量和效率的重要手段之一。
第9章回归初心,聊聊开发工程师的成长方法论,讲解代码规约的起源与落地方法。虽然这更像一个故事,但是它对于推动项目落地与个人成长具有借鉴意义。
本书特色
本书旁征博引、文风轻松,坚持朴实的平民化写书理念,为方便理解增加了大量生活化的例子,秉持“图胜于表,表胜于言”的理念,紧扣学以致用、学以精进的目标,结合阿里巴巴实践,与底层源码解析融会贯通,深入浅出地把知识立体、客观、丰富地呈现出来。
友情说明一下,本书的示例代码着重于解释知识点的逻辑与使用技巧,简捷明了为主,并非一一规范。当然,有技术追求的读者可以尝试总结全文不符合规范的代码,然后与我们联系,会有奖品回赠。
致谢
最后,要感谢在本书编写过程中,所有家人、朋友以及伙伴们的支持与帮助,让作者无后顾之忧地投入到写作中。感谢阿里云业务安全团队、研发效能事业部、AJDK、信息平台事业部、技术线HR、技术战略部、约码项目组、P3C项目组等团队的倾力奉献和所有支持计算机事业发展的开发工程师们。感谢团队各级 Leader 一如既往地支持。感谢各位编委和电子工业出版社博文视点伙伴们的认真付出,你们的积极参与和认真编校保证了图书的顺利出版。