阿里《Java开发手册》最新嵩山版发布!

《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册,当前的版本是嵩山版。

现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:五花八门的错误码人为地增加排查问题的难度;数据库的表结构和索引设计缺陷带来的系统架构缺陷或性能风险;工程结构混乱导致后续项目维护艰难;没有鉴权的漏洞代码易被黑客攻击等等。所以本手册以 Java 开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程结构、设计规约七个维度,再根据内容特征,细分成若干二级子目录。另外,依据约束力强弱及故障敏感性,规约依次分为【强制】、【推荐】、【参考】三大类。

在延伸信息中,“说明”对规约做了适当扩展和解释;“正例”提倡什么样的编码和实现方式;“反例”说明需要提防的雷区,以及真实的错误案例。

手册的愿景是码出高效,码出质量。现代软件架构的复杂性需要协同开发完成,如何高效地协同呢?无规矩不成方圆,无规范难以协同,比如,制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全,试想如果没有限速,没有红绿灯,谁还敢上路行驶?对软件来说,适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本。代码的字里行间流淌的是软件系统的血液,质量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升系统稳定性,码出质量。

我们已经在 2017 杭州云栖大会上发布了配套的 Java 开发规约 IDE 插件,下载量达到 162 万人次,阿里云效也集成了代码规约扫描引擎。次年,发布 36 万字的配套详解图书《码出高效》,本书秉持“图胜于表,表胜于言”的理念,深入浅出地将计算机基础、面向对象思想、JVM 探源、数据结构与集合、并发与多线程、单元测试等知识客观、立体地呈现出来。紧扣学以致用、学以精进的目标,结合阿里巴巴实践经验和故障案例,与底层源码解析融会贯通,娓娓道来。《码出高效》和《Java开发手册》稿费所得收入均捐赠公益事情,希望用技术情怀帮助更多的人。

更新内容

《Java开发手册》从华山到泰山,一路星夜兼程,今天的嵩山版经过不断地精进与苦练,已经日臻完美,它的内功提升之处在于:

  • 第一、增加前后端规约。打通前后端的任督二脉,形成前后端协作开发的共识。

  • 第二、重画分层图例。新图更加突出分层的清晰度,并且去掉图中有歧义的向上箭头。

  • 第三、修正BigDecimal的equals错误。3.0与3.00在我们的常规认知里是相等的,但是equals比较的结果由于考虑到精度因素,所以返回为false。

  • 第四、修正泰山版的部分文字描述错误。

下载地址

https://developer.aliyun.com/topic/java20?utm_content=g_1000161792

往期推荐

池化技术到达有多牛?看了线程和线程池的对比吓我一跳!

最简单的6种防止数据重复提交的方法!(干货)

关注下方二维码,每一天都有干货!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

递归转化成非递归过程_8086微处理器中的递归和重入过程

递归转化成非递归过程As we all know that a procedure is a set of instruction written separately which can be used any time in the code when required. A normal procedure execution includes calling of the procedure, shifting the control of the processor to th…

the development of c language(转)

c语言之父Dennis Ritchie 写的关于c语言开发历史的文章,来自这里 lisp专家Richard P.Gabriel 的《the Rise of Worse is Better 》(wikipedia入口 ,c2入口 ,《Worse is Better 》,《软件开发宗旨 》)中也…

漫谈软件研发特种部队之中的一个

特种部队,是指进行特殊任务的部队,具有编制灵活、人员精干、装备精良、机动高速、训练有素、战斗力强等特点。 特种部队最早出如今二战期间。德国于1939年9月1日的波兰战役中首次投入了一种被称为“勃兰登堡”部队的特种部队作为德国突击波兰的先锋&…

Oracle创建用户和授权

在OracleXE中创建scott用户1、打开SQL*Plus,以 sys用户登录数据库connect / as sysdba2、依次执行下面命令--DROP USER scott CASCADE;CREATE USER scott IDENTIFIED BY tiger;GRANT connect,resource TO scott;GRANT CREATE DATABASE LINK, CREATE MATERIALIZED VI…

不要一把梭了,这才是SQL优化的正确姿势!|原创干货

这是我的第 83 篇原创文章作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)年少不知优化苦,遇坑方知优化难。——村口王大爷全文内容预览:我之前有很多…

PLSQL_性能优化系列10_Oracle Array数据组优化

2014-09-25 Created By BaoXinjian 一、摘要 集合是Oracle开发中经常遇到的情况,Oracle集合分为三种情况:索引表集合(index by table)、嵌套表集合(nested table)、可变集合(varry table)。 PL/SQL中没有数组的概念,他的集合数据类型和数组是…

最小c编译器

最小c编译器(来源 (最好在linux下操作))代码有好几个版本,我选择otccelfn.c 。 /*Obfuscated Tiny C Compiler with ELF outputCopyright (C) 2001-2003 Fabrice BellardThis software is provided as-is, without any…

在Java中使用Collat​​or和String类进行字符串比较

Given two strings and we have to compare them using Collator and String classed in Java. 给定两个字符串,我们必须使用Java中分类的Collat​​or和String进行比较。 Using Collator class – to compare two strings, we use compare() method – it returns…

Oracle数据库中表格的级联删除问题

数据库表中没有设置级联删除.怎样用SQL语句实现:如:EMP表中有字段DEPT_NO是外键POS表中有字段DEPT_NO是外键DEPT表中有字段DEPT_NO,如何实现删除DEPT表中数据时将EMP表,POS表中的相关数据也删除;这里有两种方法:方法一:触发器解决create or replace trig…

IDEA 2020.2 重磅发布,动画级新功能预览!

Guide 关注了 IDEA 的官推,平时没事就会去看看有没有啥比较好的更新。今天下午看到IntelliJ IDEA 2020.2 都已经发布并且还支持了 Java15。然后,我就去官网简单看了一下新特性。单看新特性,这个新版本还是有一点香的。虽然我还木有升级到这个…

访问控制模型ACL和RBAC

2019独角兽企业重金招聘Python工程师标准>>> 1.ACL ACL是最早也是最基本的一种访问控制机制,它的原理非常简单:每一项资源,都配有一个列表,这个列表记录的就是哪些用户可以对这项资源执行CRUD中的那些操作。当系统试图…

最常见并发面试题整理!(速度收藏)

前言并发编程是面试中必问的知识点之一,所以本文整理了一些最为常见的并发面试题,一起来看吧~1. synchronized的实现原理以及锁优化?synchronized的实现原理synchronized作用于「方法」或者「代码块」,保证被修饰的代码在同一时间…

JavaScript中的嵌套事件处理(在鼠标移动事件上)

Multiple event handling is the secret ingredient of dynamic WebPages seen now-a-days. 多重事件处理是当今动态网页的秘密组成部分。 Now, let’s get started... 现在&#xff0c;让我们开始吧... Example Code 范例程式码 <html lang"en"><head&…

在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别

【在Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2这五种类型的区别 】1.CHAR(size)和VARCHAR(size)的区别 CHAR为定长的字段&#xff0c;最大长度为2K字节&#xff1b; VARCHAR为可变长的字段&#xff0c;最大长度为4K字节&#xff1b; 2.CHAR(size)和NCHAR(size)的区别 CHA…

Android 照相功能

使用内置的Camera 应用程序捕获图像 探索Android 所提供的内置功能&#xff0c;内置的图像捕获与存储功能为Android 上全部媒体功能提供了一个非常好的切入点&#xff0c;为我们在以后的章节中处理音频和视频奠定了基础。如今介绍怎样利用内置的Camera&#xff08;摄像头&#…

皮尔逊相关性_皮尔逊的相关性及其在机器学习中的意义

皮尔逊相关性Today we would be using a statistical concept i.e. Pearsons correlation to help us understand the relationships between the feature values (independent values) and the target value (dependent value or the value to be predicted ) which will furt…

磊哥最近面试了好多人,聊聊我的感受!(附面试知识点)

这是我的第 84 篇原创文章作者 | 王磊来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;一些读者可能知道&#xff0c;磊哥前段时间又回来上班了&#xff0c;详见《磊哥又滚回职场了...》…

M4 宏处理器

2019独角兽企业重金招聘Python工程师标准>>> M4 宏处理器 Brian W. KernighanDennis M. Ritchie Bell LaboratoriesMurray Hill, New Jersey 07974 翻译&#xff1a;寒蝉退士 译者声明&#xff1a;译者对译文不做任何担保&#xff0c;译者对译文不拥有任何权利并且不…

oracle的nvl和nvl2

NVL( string1, replace_with) 功能&#xff1a;如果string1为NULL&#xff0c;则NVL函数返回replace_with的值&#xff0c;否则返回string1的值&#xff0c;如果两个参数都为NULL &#xff0c;则返回NULL。NVL2(expr1,expr2,expr3)功能&#xff1a;oracle中常用函数&#xff0c…

Java SecurityManager checkAwtEventQueueAccess()方法与示例

SecurityManager类的checkAwtEventQueueAccess()方法 (SecurityManager Class checkAwtEventQueueAccess() method) checkAwtEventQueueAccess() method is available in java.lang package. checkAwtEventQueueAccess()方法在java.lang包中可用。 checkAwtEventQueueAccess() …