首页 > 编程知识 正文

阿里巴巴java开发手册最新版,php和python

时间:2023-05-04 22:34:08 阅读:147476 作者:3407

我是风筝。 公众号“古代风筝”,不仅是技术的公众号,也是混进程序世界多年、本职工作的Java、Python、React的6大斜杠开发者。

Spring Cloud系列文章完成。 在我的github上可以看到系列的完整内容。 也可以在公众号内回复“pdf”,获取我精心制作的pdf版完整教程。

4月22日,阿里巴巴发布泰山版《Java 开发手册》。 以前以为终极版真的是终极版,没想到太简单了。 继终极版之后发表了详细版、华山版。 不,泰山版又来了。 想想也是。 行业一直在发展,JDK也一直在更新。 怎么会有终极版呢?

自从2017年阿里发布退出版以来,我一直把这本手册作为开发规范,放在电脑里最显眼的地方,有时翻来覆去,有时在团队里推广。 顺便说一下,安利给了朋友。 每次发布新版本时,请在第一时间重新阅读。

泰山版此次发布,与前一版相比有以下更新。

发布错误代码统一解决方案。

添加了34个新条款,包括日期和时间闰年、闰月问题、自动打开第三次运算的包装、SQL查询的表别名限定、Collectors类的toMap )方法使用注意事项。

说明修改90处。 例如,区块等待锁定、建设表的小数型等。

例如,完善几个例子,例如ISNULL的例子。

为什么经常拿出来读?

手册包括从项目设计到编码和部署的各个方面。 但是,对于开发者个人来说,也有很多人接触的机会有限等不太接触的方面。 此外,异常的定义、MySQL管理等可能是在项目开始时针对核心开发人员和架构师统一定制的。 一些学生直接拿来主义,也不关心具体的设计原理和实现细节。

手册也不长。 这个版本的正文只有57页。 读一次也没花多少时间。 其中,既有命令风格和常数定义等我们平时经常谈论的方面,也有评论条款、评论的写法、写在哪里、是什么格式等平时就不那么在意的方面。 不夸张地说,很多时候能写注释已经很好了。 更何况,我不能写清楚注释。 相反,很多人本来就很少写注释,我觉得这是浪费时间。

本手册是阿里巴巴多年开发经验的结晶,除了前面提到的命名、注释等提高代码可读性、可读性的条款外,还包括准确的建设表、良好的工程结构、良好的异常处理、安全控制以及平时常用的JDK功能的防坑指南

命名样式、常量定义和代码格式

这几个基本上写过几年代码的人有同样的规格,基本上和阿里巴巴开发者手册没有太大的差别。

原始设备制造商协议

6 .【强制】因为Object的equals方法容易抛出指针异常,所以指定具有常量或值的对象调用equals。

正例:'test'.equals(object );

反例:object.equals('test );

说明建议使用: Java.util.objects # equals (JDK 7中引入的工具类)。

反例中的object是变量,如果该变量为null,则抛出异常。 推荐使用Objects.equals(S1,s2 )。

8 .【强制】任何货币金额,以最小货币单位且整数型存储。

例如,人民币的最小单位是积分。 假设商品价格为1元,则将其保存在数据库的price字段中。 字段类型为int或bigint,值为100,单位为点,即100点。

我在这个问题上进过洞。 几年前系统的价格字段使用浮点数。 单位是元。 还有就是价格计算很麻烦。 而且浮点数的计算并不完全准确。 特别是与小数点数有关的情况。 最后将字段设为int类型,重构了代码上涉及价格的地方。

所以,后来看手册上的这个章程时,感觉相遇和怨恨晚了。 我从使用阳光的天鹅的经验中吸取了这个教训,如果早点看,不是省了很多吗?

9 .【强制】浮点数之间的等值判断,基本数据类型不能用==比较,包装数据类型不能用equals判断。

反例:

浮动a=1.0f-0.9f;

浮动b=0.9f-0.8f;

if(a==b ) {

//进入该代码很快,预计会运行其他业务逻辑//,但实际上a==b的结果是false

}

floatx=float.valueof(a;

floaty=float.valueof(b;

if(x.equals(y ) ) )

//进入此代码很快,预计将运行其他业务逻辑

//但实际上equals的结果是false

}

在没有写浮点数的计算之前,我想这不是数学的计算吗? 计算机出现得最好不就是为了做这个吗? 当我接触浮点数的计算时,我才发现它和想象中的完全不同。 如上反例所示,由于计算机采用二进制,无法完全准确地表示十进制。 感兴趣的人请搜索一下,调查一下背后的原理。

正确的做法

是用高精度的 BigDecimal,它的目的就是用来做浮点数做不来的高精度计算的。

日期格式

有好多同学对于日期的处理都不是很熟悉,经常好久不用,用到了就去网上查,其实我也不常用,要让我现在手写一个日期处理的方法也得查 API,为此专门写了一个日期处理工具类。但是注意要及时升级,比如 JDK 8 之后出的 LocalDateTime 就可以替换之前的 Date 了。

手册中还专门提到了【强制】不允许在程序任何地方中使用:1)java.sql.Date2)java.sql.Time3) java.sql.Timestamp,赶紧翻翻你的代码中是不是还在用这三个类型,反正我已经在用 LocalDateTime。

集合处理

集合使我们开发中使用频率非常高的数据结构,建议每一条都仔细阅读,然后应用到我们的项目中。这哪里是开发手册,这是在告诉我们如何正确的使用Java 集合。

并发处理

如何正确的使用线程池、SimpleDateFormat 不是线程安全的、正确的使用 ThreadLocal。每一条背后都是经验教训。

异常处理

try-catch 如何使用、同一模块如何处理异常、不同服务如何处理异常等等。

MySQL

如何建表、何时分表,如何命名表名、字段名,合适的选择字段类型,如何建立索引、良好的 SQL 语句,ORM 映射,每一条都能深挖下去。

工程结构

项目标准的分层结构是怎么样的,依赖库的管理方式,服务器的重点调优指标等等。

设计规约

从架构师的角度规范一个项目文档编写、设计过程等等。

错误码

错误码用来友好的反应逻辑问题或者系统错误。每个平台都应该有且仅有一份错误码,不能多也不能少。在手册最后还公布了一份完整的错误码列表。

能一次性把手册读明白的,那绝对是wxdwd了,大多数人可能对其中的一部分规约不太理解。但其实这些都是基础的内容,所以说,看那些云山雾罩的面试宝典之前,先把这个手册完全搞明白,那对你的编程水平也会有很大提高。

阿里巴巴编码规范 IDEA 插件

阿里巴巴还出了一个开发规约的 IDEA 插件,配合开发手册就完美了。可以在 IDEA 插件管理界面搜索"Alibaba Java Code Guidelines"进行安装。

之后在 IDEA 的 tools 菜单下可以看到这个插件,有动态开启或者关闭,还可以切换语言。

开启之后,当我们在代码里写了违反规约的代码时,就会给出提示,比如我在代码里用 ==比较两个 Integer,就会在 ==下面出现警告提示,并且告诉你正确的姿势是什么。

手册下载

没有下载的同学赶紧下载下来读两遍吧。

官方下载地址,需要登录阿里云。

没有阿里云的同学,在公众号内回复「阿里」,获取下载地址

我是风筝,公众号「古时的风筝」,一个在程序圈混迹多年,主业 Java,另外 Python、React 也玩儿的很 6 的斜杠开发者。可以在公众号中加我好友,进群里小伙伴交流学习,好多大厂的同学也在群内呦。

技术交流还可以加群或者直接加我微信。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。