本手册的愿景是码出高效,码出质量。它结合作者的开发经验和架构历程,提炼阿里巴巴集团技术团队的集体编程经验和软件设计智慧,浓缩成为立体的编程规范和最佳实践。众所周知,现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程相关的知识点,其他维度的知识点也会影响软件的最终交付质量,比如,数据库的表结构和索引设计缺陷可能带来软件的架构缺陷或性能风险;单元测试的失位导致集成测试困难;没有鉴权的漏洞代码易被黑客攻击等。所以,本手册以开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约七个维度,每个条目下有相应的扩展解释和说明,正例和反例,全面、立体、形象地帮助到开发者的成长和团队代码规约文化的形成。
从严格意义上讲,本手册跨越了Java语言本身,明确作为一名合格开发者应该具备的基本素质,因此本手册适合计算机相关行业的管理者和研发人员、高等院校的计算机专业师生、求职者等阅读,希望成为大家如良师益友般的工作手册、工具字典和床头书。
由阿里巴巴约码项目组重新校对后发布的最新版本,并披露《阿里巴巴Java开发手册》的设计规约部分
来自于阿里集团的智慧与经验,用血淋淋的故障换来的总结
阿里经济体全球技术开发准则
规范了Java开发准则与代码编写习惯
直接影响Java从业者、求职者和在校相关专业大学生等逾百万的计算机相关人群
以阿里的技术底蕴,以一个独特的视角地成为影响到世界的经典计算机图书
对Java教育教学产生深远影响
对社会贡献及深远影响不可估量
杨冠宝
花名孤尽,取自《笑傲江湖》中风清扬的“独孤九剑,破尽天下武功”之意,是《阿里巴巴Java开发手册》的主要作者。在阿里巴巴集团历任研发、架构师、技术主管等不同的角色,承担过双11、国际化、代码中心等大型项目,有着丰富的一线编程经验,目前是研发协同平台Aone代码中心负责人。乐于分享与总结,在阿里巴巴集团内部大型分享多达30余次,不懈地追求技术创新,勇于挑战技术难度,在大数据、高并发、研发效能领域均有较深的造诣。
《阿里巴巴Java开发手册》(以下简称“《手册》”)是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断的完善,系统化地被整理成册,回馈给广大开发者。
现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其他维度的知识点也会影响软件的最终交付质量。比如,数据库的表结构和索引设计缺陷可能带来软件的架构缺陷或性能风险;单元测试的失位导致集成测试困难;没有鉴权的漏洞代码易被黑客攻击等。(与版权页介绍一致)所以,《手册》以Java开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约七个维度,再根据内容特征,细分成若干个二级子目录。
根据约束力强弱及故障敏感性,规约依次分为【强制】、【推荐】、【参考】三大类。在规约条目的延伸信息中,“说明”对内容做了适当扩展和解释,“正例”是提倡的编码和实现方式,“反例”是需要提防的雷区及真实的错误案例。
既然《手册》划分为前文所说的七大维度知识点,那么延伸的问题就是“为什么我们会提到这些看似与编码毫无关系的章节?”有人曾经质疑,扩展的知识体系本来就是十分庞大的规范文档,比如安全规约扩展开来可以是上百页的资料,与服务器维护相关的PE手册厚厚一叠,不知道写进《手册》中的意义何在?其实,《手册》主要关注的是与开发紧密相关的知识点,《手册》不是提倡大家成为安全专家、运维专家,而是关注与编码相关的生态知识,明确了作为一位合格的Java开发工程师应具备的基本技术素养。
设计规约部分是本手册独家首发,它根据阿里巴巴一线架构设计经验沉淀而成,旨在帮助研发人员准确度量是否需要定向地设计文档。近年来,敏捷开发的流行,在一定程度上弱化了设计的重要性,在《手册》中明确了软件设计底线,如果超过规定的阈值,则需要进行有针对性的软件设计与文档沉淀。
最后,《码出高效——阿里巴巴Java开发手册详解》即将出版。此书将详细说明规约的初衷和意义、编写和推广历程,每个条目背后的思考与详细的示例代码,以及相应的故障案例分析。拟定的主要章节如下:
第1章 从程序员的“编程理念之争”说起
第2章 编码规范与团队效能的辩证关系
第3章 Java编程规约剖析
第4章 异常日志与问题排查
第5章 兢兢业业的单元测试
第6章 安全无小事
第7章 MySQL数据库
第8章 规范化的工程
第9章 设计中体现艺术家的气质