阿里出品的最新版 Java 开发手册,嵩山版,扫地僧

简介: 阿里出品的最新版 Java 开发手册,嵩山版,扫地僧

说起嵩山,我就想起乔峰,想起慕容复,以及他们两位老爹在少林寺大战的场景。当然了,最令我印象深刻的就是那位默默无闻,却一鸣惊人的扫地僧啊。这次,阿里出品的嵩山版 Java 开发手册的封面就有一个扫地僧,唉,这就厉害了呀!



嵩山少林寺位于河南省登封市,始建于北魏太和十九年,号称“天下第一名刹”。这意味着什么?阿里出品的嵩山版 Java 开发手册,是迄今为止最重量级的。


上个版本叫泰山版,更新于 2020 年 4 月 22 号,版本出来的第一时间,我就给大家分享了。我相信,看过的小伙伴一定大有所获。毕竟《阿里巴巴 Java 开发手册》这本小册子虽然只有几十页,但讲的主要是一些典型的开发规约、编程规范、以及最佳实践,已经成为业界普遍遵循的开发规范。


那新版主要更新了哪些内容呢?我来挑一些重点,和大家分享下。


01、新增前后端规约 14 条


前后端我都开发过,所以就挑一些我认为比较关键的规约来给大家推荐一下。好的规约能够让前后端工程师在开发的过程中减少很多不必要的麻烦,毕竟现在都追求前后端分离,接口对接的过程中就必须得有一定的规则遵守,不然扯起皮了就不妙了。


前后端交互的 API,需要明确协议、域名、路径、请求方式、请求内容、状态码、响应体。


前后端数据列表相关的接口,如果为空,就是没有数据的时候,应该返回空数组 [] 或者空集合 {},这样可以省去判 null 的操作。


服务端发生错误时,返回给前端的响应信息必须包含 HTTP 状态码,errorCode、 errorMessage(方便追踪错误)、用户提示信息四个部分。


涉及到超大整数的场景,服务端应该使用 String 类型返回,避免使用 Long。


服务端返回的数据,尽量使用 JSON 而非 XML 格式。


02、新增禁止任何歧视性用语的约定


image.png


虽然互联网越来越开放,但有些用语还是要注意一下(尽量和谐)。记得之前 MySQL 的一些关键字都被迫做了调整。


03、新增涉及敏感操作的情况下日志需要保存六个月的约定


image.png


涉及到法律的地方还是在开发的时候注意一下。


04、修正 BigDecimal 类中关于 compareTo 和 equals 的等值比较


关于这一点,我之前在文章里详细地阐述了,浮点数之间的比较不能使用“==”操作符,而 BigDecimal 之间不能使用 equals() 比较。


我去,脸皮厚啊,竟然使用==比较浮点数?


image.png


05、修正 HashMap 关于 1024 个元素扩容的次数


泰山版说是扩容 7 次。


image.png


嵩山版修正为扩容 8 次。


image.png


06、修正架构分层规范与相关说明


泰山版的应用分层如下图所示。


image.png


嵩山版的应用分层修改为如下图所示。


image.png


07、最后


如果你想成为一名优秀的 Java 工程师,那么这份手册上的内容几乎是必须要掌握的。是不是已经迫不及待想要下载这份手册了?


相关文章
|
2月前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
1407 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
5月前
|
SQL Java 数据库连接
阿里腾讯互联网公司校招 Java 面试题总结及答案解析
本文总结了阿里巴巴和腾讯等互联网大厂的Java校招面试题及答案,涵盖Java基础、多线程、集合框架、数据库、Spring与MyBatis框架等内容。从数据类型、面向对象特性到异常处理,从线程安全到SQL优化,再到IOC原理与MyBatis结果封装,全面梳理常见考点。通过详细解析,帮助求职者系统掌握Java核心知识,为校招做好充分准备。资源链接:[点击下载](https://pan.quark.cn/s/14fcf913bae6)。
186 2
|
设计模式 数据可视化 安全
《阿里巴巴Java开发手册v1.2》解析(编程规约篇)
之前在乐视天天研究各种底层高大上的东西,因为我就一个人,想怎么弄怎么弄。如今来了新美大,好好研读一下《阿里巴巴Java开发手册v1.2》。还要对这么看似简单的东西解析一番。毕竟现在带团队,讲究团队合作。现在项目稍微有点乱,早统一,代价越低。别问我乐视是不是不行了。乐视好的很,已经到了谷底,该反弹了,看好乐视。我离开是因为自己的技术瓶颈,要是乐视像去年发展的那么好,我估计离开的更早。
|
1月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
141 1
|
1月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
160 1
|
2月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
136 0
|
2月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
220 16
下一篇
oss云网关配置