黄山归来不看岳:《Java开发手册(黄山版)》新增 11 条规约

简介: 黄山归来不看岳:《Java开发手册(黄山版)》新增 11 条规约



孤尽老师有话说

五岳归来不看山,黄山归来不看岳!从2015年到2022年,希望这是爱因斯坦的第三个小板凳,点点滴滴,希望对大家的程序员生涯有帮助

《Java开发手册(黄山版)》下载


1. 聊聊版本沿革

最初的版本,没有名称,只有版本号,从1.0.0开始,后来感觉并不利于传播,改成以五岳来命名。因为华山最有武侠渊源,所以第一个版本叫做《华山版》,边上的码出真功有点向周星驰电影功夫最后的场景《如来神掌》致敬的味道;华山之后,去五岳至尊泰山朝圣,感受东海日出的壮观;泰山之后,去往嵩山,因为那里有一个金庸先生笔下武功最高的人物——扫地僧,所以封面用了扫地僧的原型。印象最深的是封面,太阳下的扫地僧在台阶上的影子,来来回回还改了好几次,为了逼真,我觉得影子需要有点折子的感觉,表达这是台阶上的影子;嵩山之后,不出意外是恒山版,为此还去了悬空寺,结果无意中发现恒山和衡山的发音居然完全相同,这个在表达上是大忌,增加无谓的共同成本;为此还公开征集下一个版本名称,收到:天山版,屏峰版,玉山版,黄山版…,最后选择了黄山版,是那句诗:五岳归来不看山,黄山归来不看岳,那就遗忘掉以前的版本。


2. 以上四个版本的共同之处?

第一、都是使用了武侠的水墨画风格;第二、都是使用的红色印章的方式表达版本号;第三、推广中国元素和风景区;


3. 黄山版的更新之处?

一、排版上

统一字号改小一号,条目之间统一留出0.5行的间距,即使本次新增11条,总页数还是从嵩山版的63页减少到本次的55页:


二、内容上的其他更新如最后的版本历史所示:

回归初心,码出高效,码出质量,码出快乐,从2015到2022,痛并快乐着,坚持公益,坚持我的,一路走到黄山。无论是排版,样式,说明,正反例,过年也是仔仔校对,细细勘察,相信黄山归来不看岳,《Java开发手册(黄山版)》,相信我辈程序员值得拥有哈~

以上内容节选https://www.zhihu.com/question/514550687/answer/2335435300


《Java开发手册(黄山版)》

孤尽老师,一直是我的榜样。你看,即使是在2022年的春节大联欢的时候,他还在“内卷”,于2月3日整理发布出《Java开发手册(黄山版)》。

记得从《Java开发手册》刚发布时,自己拿到时的欣喜感,像是“捡了个大便宜”–终于有一个国产的JAVA编码的系统总结。基于此,自己也在团队中组织培训了多次。

特别是其中的编码规约--并发处理,对于刚工作的开发人员,提前规避了很多坑,也帮助自身快速熟悉了JUC常见集合的原理和异常处理。而对于高级开发人员,其中的设计规约,从刚开始的理论熟悉,慢慢有了心悦诚服的认可。

所以,当《Java开发手册(黄山版)》发布后,我也迫不及待的通读了一遍,我知道这又是一个“修武”的好机会,哈哈。

看完《Java开发手册(黄山版)》,有三大感受: 例子更详实了,说明更醒目了,规约更完善了(多了11条,下文会一一列举)

期待后面的版本有分布式,架构图,系统设计更多的内容。(哈哈,免费的,还这么贪心)


1. 例子更详实了

1.1 常量定义-魔法值

1.2 OOP 规约–构造方法

1.3 日期时间

1.4 并发处理-线程池


2. 说明更醒目了

2.1 代码格式


3. 规约更完善了

3.1 浮点数类型的数值后缀统一为大写的 D 或 F

3.2 枚举 enum(括号内)的属性字段必须是私有且不可变

3.3 【推荐】为了保护用户隐私,日志文件中的用户敏感信息需要进行脱敏处理。

3.4【强制】对于文件上传功能,需要对于文件大小、类型进行严格检查和控制。

3.5【强制】配置文件中的密码需要加密。

3.6 【强制】在数据库中不能使用物理删除操作,要使用逻辑删除。

3.7 【强制】二方库定制包的命名方式,在规定的版本号之后加“-英文说明[序号]”,英文说明可以是部门简称、业务名称,序号直接紧跟在英文说明之后,表示此定制包的顺序号。

3.8【强制】调用远程操作必须有超时设置。

说明:类似于 HttpClient 的超时设置需要自己明确去设置 Timeout。根据经验表明,无数次的故障都是因为没有设置

超时时间。

3.9【推荐】客户端设置远程接口方法的具体超时时间(单位 ms)

超时设置生效顺序一般为:1)客户端 Special Method;2)客户端接口级别;3)服务端 Special Method;4)服务端接口级别。

3.10【推荐】了解每个服务大致的平均耗时,可以通过独立配置线程池,将较慢的服务与主线程池隔离开,免得不同服务的线程同归于尽。

3.11 【强制】系统设计时要准确识别出弱依赖,并针对性地设计降级和应急预案,保证核心系统正常可用。


目录
相关文章
|
2月前
|
Java API Maven
如何使用Java开发抖音API接口?
在数字化时代,社交媒体平台如抖音成为生活的重要部分。本文详细介绍了如何用Java开发抖音API接口,从创建开发者账号、申请API权限、准备开发环境,到编写代码、测试运行及注意事项,全面覆盖了整个开发流程。
221 10
|
2月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
11天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
58 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
21天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
104 13
|
26天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
57 10
|
19天前
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
56 2
|
29天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
2月前
|
开发框架 Java 关系型数据库
Java哪个框架适合开发API接口?
在快速发展的软件开发领域,API接口连接了不同的系统和服务。Java作为成熟的编程语言,其生态系统中出现了许多API开发框架。Magic-API因其独特优势和强大功能,成为Java开发者优选的API开发框架。本文将从核心优势、实际应用价值及未来展望等方面,深入探讨Magic-API为何值得选择。
68 2
|
2月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。