下载地址:网盘下载

编辑推荐

规范了Java开发准则与代码编写习惯
将直接影响Java从业者、求职者和在校相关专业大学生等逾百万的计算机相关人群
以阿里的技术底蕴,以一个独特的视角地成为影响到世界的经典计算机图书
对Java教育教学产生深远影响
对社会贡献及深远影响不可估量
内容提要
《阿里巴巴Java开发手册》的愿景是码出高效,码出质量。它结合作者的开发经验和架构历程,提炼阿里巴巴集团技术团队的集体编程经验和软件设计智慧,浓缩成为立体的编程规范和最佳实践。众所周知,现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程相关的知识点,其他维度的知识点也会影响软件的最终交付质量,比如,数据库的表结构和索引设计缺陷可能带来软件的架构缺陷或性能风险;单元测试的失位导致集成测试困难;没有鉴权的漏洞代码易被黑客攻击等。所以,本手册以开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约七个维度,每个条目下有相应的扩展解释和说明,正例和反例,全面、立体、形象地帮助到开发者的成长和团队代码规约文化的形成。
从严格意义上讲,《阿里巴巴Java开发手册》超越了Java语言本身,明确作为一名合格开发者应该具备的基本素质,因此本手册适合计算机相关行业的管理者和研发人员、高等院校的计算机专业师生、求职者等阅读,希望成为大家如良师益友般的工作手册、工具字典和床头书。
目录
序 V
前言 XI
第1章 编程规约 1
1.1 命名风格 2
1.2 常量定义 7
1.3 代码格式 9
1.4 OOP规约 14
1.5 集合处理 21
1.6 并发处理 28
1.7 控制语句 33
1.8 注释规约 38
1.9 其他 41
第2章 异常日志 43
2.1 异常处理 44
2.2 日志规约 49
第3章 单元测试 53
第4章 安全规约 59
第5章 MySQL数据库 63
5.1 建表规约 64
5.2 索引规约 68
5.3 SQL语句 72
5.4 ORM映射 75
第6章 工程结构 79
6.1 应用分层 80
6.2 二方库依赖 83
6.3 服务器 87
第7章 设计规约 89
附 录 专有名词 94
作者简介
杨冠宝
花名孤尽,取自《笑傲江湖》中风清扬的“独孤九剑,破尽天下武功”之意,是《阿里巴巴Java开发手册》的主要作者。在阿里巴巴集团历任研发、架构师、技术主管等不同的角色,承担过双11、国际化、代码中心等大型项目,有着丰富的一线编程经验,目前是研发协同平台Aone代码中心负责人。乐于分享与总结,在阿里巴巴集团内部大型分享多达30余次,不懈地追求技术创新,勇于挑战技术难度,在大数据、高并发、研发效能领域均有较深的造诣。
媒体评论
“一个优秀的工程师和一个普通工程师的区别,不是满天飞的架构图,他的功底体现在所写的每一行代码上。”——毕玄
前言
别人都说我们是搬砖的码农,可我们知道自己是追求个性的艺术家。也许我们不会过多在意自己的外表和穿着,但在我们不羁的外表下,骨子里追求着代码的美、系统的美,代码规范其实就是一个对程序美的定义。但是这种美离程序员的生活有些遥远,尽管编码规范的价值在业内有着广泛的共识,在现实中却被否定得一塌糊涂。工程师曾经最引以为豪的代码,因为编码规范的缺失、命名的草率而全面地摧毁了彼此的信任,并严重地制约了相互的高效协同。工程师一边吐槽别人的代码,一边写着被吐槽的代码,频繁的系统重构和心惊胆战的维护似乎成了工作的主旋律。
那么如何走出这种怪圈呢?众所周知,互联网公司的优势在在于效率,是企业核心竞争力,体现在产品开发领域,就是沟通效率和研发效率。对于沟通效率的重要性,可以从程序员三大“编程理念之争”说起:
 缩进采用空格键,还是Tab键。
 if单行语句需要大括号,还是不需要大括号。
 左大括号不换行,还是单独另起一行。
在美剧《硅谷》中,你也许会记得这样一个经典镜头:主人公Richard与同为程序员的女友分手,理由是两人对缩进方式有着不同的习惯,互相拧巴地鄙视着对方的cody style。Tab键和空格键的争议在现实编程工作中确实存在。《阿里巴巴Java开发手册》(以下简称“《手册》”)明确地支持了4个空格的做法,如果一定要问理由,没有理由,因为能够想出来的理由,就像最坚固的盾一样,总有更加锋利的矛会戳破它。只想说,一致性很重要,无边无际争论的时间成本与最后的收益是成反比的。
 缩进采用空格键,还是Tab键。
 if单行语句需要大括号,还是不需要大括号。
 左大括号不换行,还是单独另起一行。
在美剧《硅谷》中,你也许会记得这样一个经典镜头:主人公Richard与同为程序员的女友分手,理由是两人对缩进方式有着不同的习惯,互相拧巴地鄙视着对方的cody style。Tab键和空格键的争议在现实编程工作中确实存在。《阿里巴巴Java开发手册》(以下简称“《手册》”)明确地支持了4个空格的做法,如果一定要问理由,没有理由,因为能够想出来的理由,就像最坚固的盾一样,总有更加锋利的矛会戳破它。只想说,一致性很重要,无边无际争论的时间成本与最后的收益是成反比的。
左大括号是否单独另起一行?因为Go语言的强制不换行,在这点上,“编程理念之争”的销烟味没有那么浓,如果一定要给一个理由,那么换行的代码可以增加一行,对于按代码行数考核工作量的公司员工,肯定倾向于左大括号前换行。《手册》明确左大括号不换行。
这些理念之争的本质就是自己多年代码习惯生的茧,不愿意对不一样的风格妥协,不愿意为了团队的整体效能提升而委屈自己。只想说,很多编程方式客观上没有对错之分,一致性很重要,可读性很重要,团队沟通效率很重要。有一个理论叫帕金森琐碎定律:一个组织中的成员往往会把过多的精力花费在一些琐碎的争论上。程序员天生需要团队协作,而协作的正能量要放在问题的有效沟通上。个性化应尽量表现在系统架构和算法效率的提升上,而不是在合作规范上进行纠缠不休的讨论、争论,最后没有结论。规范不一,就像下图中的小鸭子和小鸡对话一样,言语不通,一脸囧相。鸡同鸭讲也恰恰形容了人与人之间沟通的痛点,自说自话,达不成一致意见。再举个生活中的例子,交通规则靠左行还是靠右行,两者孰好孰坏并不重要,重要的是必须要在统一的方向上通行,表面上限制了自由,但实际上是保障了公众的人身安全。试想,如果没有规定靠右行驶,那样的路况肯定拥堵不堪,险象环生。同样,过分自由随意、天马行空的代码会严重地伤害系统的健康,影响到可扩展性及可维护性。
这些理念之争的本质就是自己多年代码习惯生的茧,不愿意对不一样的风格妥协,不愿意为了团队的整体效能提升而委屈自己。只想说,很多编程方式客观上没有对错之分,一致性很重要,可读性很重要,团队沟通效率很重要。有一个理论叫帕金森琐碎定律:一个组织中的成员往往会把过多的精力花费在一些琐碎的争论上。程序员天生需要团队协作,而协作的正能量要放在问题的有效沟通上。个性化应尽量表现在系统架构和算法效率的提升上,而不是在合作规范上进行纠缠不休的讨论、争论,最后没有结论。规范不一,就像下图中的小鸭子和小鸡对话一样,言语不通,一脸囧相。鸡同鸭讲也恰恰形容了人与人之间沟通的痛点,自说自话,达不成一致意见。再举个生活中的例子,交通规则靠左行还是靠右行,两者孰好孰坏并不重要,重要的是必须要在统一的方向上通行,表面上限制了自由,但实际上是保障了公众的人身安全。试想,如果没有规定靠右行驶,那样的路况肯定拥堵不堪,险象环生。同样,过分自由随意、天马行空的代码会严重地伤害系统的健康,影响到可扩展性及可维护性。
——孤尽
前言
《阿里巴巴Java开发手册》(以下简称“《手册》”)是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断的完善,系统化地被整理成册,回馈给广大开发者。
现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其他维度的知识点也会影响软件的最终交付质量。比如,数据库的表结构和索引设计缺陷可能带来软件的架构缺陷或性能风险;单元测试的失位导致集成测试困难;没有鉴权的漏洞代码易被黑客攻击等。(与版权页介绍一致)所以,《手册》以Java开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约七个维度,再根据内容特征,细分成若干个二级子目录。
根据约束力强弱及故障敏感性,规约依次分为【强制】、【推荐】、【参考】三大类。在规约条目的延伸信息中,“说明”对内容做了适当扩展和解释,“正例”是提倡的编码和实现方式,“反例”是需要提防的雷区及真实的错误案例。
既然《手册》划分为前文所说的七大维度知识点,那么延伸的问题就是“为什么我们会提到这些看似与编码毫无关系的章节?”有人曾经质疑,扩展的知识体系本来就是十分庞大的规范文档,比如安全规约扩展开来可以是上百页的资料,与服务器维护相关的PE手册厚厚一叠,不知道写进《手册》中的意义何在?其实,《手册》主要关注的是与开发紧密相关的知识点,《手册》不是提倡大家成为安全专家、运维专家,而是关注与编码相关的生态知识,明确了作为一位合格的Java开发工程师应具备的基本技术素养。
设计规约部分是本手册独家首发,它根据阿里巴巴一线架构设计经验沉淀而成,旨在帮助研发人员准确度量是否需要定向地设计文档。近年来,敏捷开发的流行,在一定程度上弱化了设计的重要性,在《手册》中明确了软件设计底线,如果超过规定的阈值,则需要进行有针对性的软件设计与文档沉淀。
最后,《码出高效——阿里巴巴Java开发手册详解》即将出版。此书将详细说明规约的初衷和意义、编写和推广历程,每个条目背后的思考与详细的示例代码,以及相应的故障案例分析。拟定的主要章节如下:
第1章 从程序员的“编程理念之争”说起
第2章 编码规范与团队效能的辩证关系
第3章 Java编程规约剖析
第4章 异常日志与问题排查
第5章 兢兢业业的单元测试
第6章 安全无小事
第7章 MySQL数据库
第8章 规范化的工程
第9章 设计中体现艺术家的气质

下载地址:网盘下载

转载于:https://www.cnblogs.com/long12365/p/9730832.html

阿里巴巴java开发手册pdf相关推荐

  1. 阿里巴巴Java开发手册.pdf

    2019华山版-v1.5.0 2020泰山版-v1.6.0 oracle jdbc 驱动包 ojdbc6 ojdbc7 ojdbc8 mvn install:install-file -DgroupI ...

  2. 《阿里巴巴 Java 开发手册》读书笔记

    偶然看到阿里巴巴居然出书了???趁着满减活动(节约节约....)我赶紧买来准备看看,刚拿到的时候掂量了好多下,总觉得商家给我少发了一本书,结果打开才知道..原来这本书这么小.... 编码规范的重要性 ...

  3. 《阿里巴巴JAVA开发手册》发布详尽版,新增16条设计规约

    2018年6月5日,<阿里巴巴Java开发手册>再次升级代码规范,新增了16条设计规约! <阿里巴巴Java开发手册>是阿里内部Java工程师所遵循的开发规范,涵盖编程规约.单 ...

  4. java replaceall删除中括号和内容_「技术文章」《阿里巴巴 Java 开发手册》精华摘要...

    一.写在开头 Java作为一个编程界最流行的语言之一,有着很强的生命力.代码的编写规范也是不容忽视的,今天,我就把自己阅读的国内的互联网巨头阿里巴巴的<阿里巴巴 Java 开发手册>一些精 ...

  5. 【资料】翘首期盼247天!《阿里巴巴Java开发手册》扫描插件详情介绍

    引言:自从2月9日<阿里巴巴Java开发手册>面向业界公布以来,大家一直期待着静态化扫描工具的问世,在<手册>终极版发布时,我们曾经承诺将在2017杭州云栖大会上进行规约插件的 ...

  6. 《阿里巴巴Java开发手册》2018年完整资料下载!

    无规矩不成方圆,无规范不能协作. <阿里巴巴Java开发手册>(以下简称<手册>)是阿里内部Java工程师所遵循的开发规范,涵盖编程规约.异常日志.单元测试.安全规约.MySQ ...

  7. 304902阿里巴巴Java开发手册1.4.0

    转自官网 前言 <阿里巴巴Java开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大开发者.现代软件行业的高速 ...

  8. 《阿里巴巴 Java开发手册》读后感

    前言 只有光头才能变强 前一阵子一直在学Redis,结果在黄金段位被虐了,暂时升不了段位了,每天都拿不到首胜(好烦). 趁着学校校运会,合理地给自己放了一个小长假,然后就回家了.回到家才发现当时618 ...

  9. 阿里巴巴java开发手册(泰山版)在线阅览

    阿里巴巴java开发手册(泰山版)在线查看 阿里云华山版及以前版本在线阅览地址 华山版在线阅览用IE浏览器打开链接 https://alitech-private.oss-cn-beijing.ali ...

  10. 赠书啦!《阿里巴巴Java开发手册》实体书面世!

    前言 献给开发者们!<#阿里巴巴java开发手册#>实体书开启预售!书中独家披露设计规约,根据阿里巴巴一线架构设计经验沉淀而成,旨在帮助研发人员准确地度量是否需要定向的设计方案. 本手册的 ...

最新文章

  1. 干货 | 详解对象检测模型中的Anchors
  2. dblclick,默认全选屏蔽
  3. 使用TI 的低功耗C5x DSP的指纹识别方框图和解决方
  4. Ansible基本命令
  5. source insight 4.0 无法同步文件问题
  6. 敏捷系列情景剧 | 如何“正确”开每日站会
  7. sd省队集训d1t1
  8. IAR 的精确延时程序(转)
  9. python deque函数_一个不得不了解的Python库——collections
  10. 编程之美读书笔记1.3 —— 一摞烙饼的排序
  11. C++模板实现,支持多维,安全数组的完整代码
  12. mysql 大文本_MySQL长文本存储类型
  13. 转回到Edison上开发
  14. Linux中的虚拟机图形界面安装步骤,批量完成虚拟机硬件配置
  15. Java学习day08--方法引用和Stream流
  16. 阿里云IOT入门教程(三)阿里云IOT Studio自建手机App控制Wemos D1 Mini( ESP8266 )板载灯亮灭
  17. 华为mate40pro和华为mate30pro的区别
  18. 京东android面试题2019,2019京东的面试题(牛客)
  19. QtXlsx 读写 excel
  20. JAVA Swing 中的表格

热门文章

  1. 原因及解决办法:Failed to load module “canberra-gtk-module“
  2. 解决办法:一切都正确,Python3执行PyImport_Import()一直返回NULL
  3. FireFox使用百度网盘插件
  4. 如何在C中调用C++的示例代码
  5. RESTful Connector
  6. oracle 11.2.0.4 make 报错,linux7安装oracle11.2.0.4RAC注意事项
  7. python字符串偏移量_字符串掩码和带正则表达式的偏移量
  8. Dxg——[版本管理工具Git SVN]开发笔记整理分类合集【所有的相关记录,都整理在此】
  9. java反编译能拿到源码吗_大牛带你解读Spring源码,编写自定义标签,您能学会吗?
  10. 让vim在utf-8的local下打开 gbk 文件