【Java七天学习训练营】Day6

简介: 《Java开发手册》发布至今,下载超260万次,此次2020最新泰山版《Java开发手册》来了!七天打卡训练营由手册作者亲自出题,每天学一个知识点,写一个小作业,帮助你把新书读透!

泰山版Java开发手册

《Java开发手册》始于阿里内部规约,在全球 Java 开发者共同努力下,已成为业界普遍遵循的开发规范。今年是手册上线第四年,推出全新泰山版免费下载,涵盖三大更新亮点,直接下载一睹为快:泰山版Java开发手册

Java七天学习训练营Day6

Java七天学习训练营是由泰山版《Java开发手册》的作者亲自出题,每天学习一个知识点,写一份小作业,帮助你不仅是阅读,更能透彻理解泰山版《Java开发手册》的重要知识。

活动时间:5月15日截止提交完成打卡的同学名单

完成七天打卡挑战的少侠即有机会获得精美的阿里云开发者社区周边礼品,包含阿里云ET公仔、超大社区鼠标垫、卫衣、背包等等。

提示:每天需要从泰山版Java开发手册 进入,按照下方图示点击才算打卡成功哦!

配图.png

奖品说明:
同学们获取奖品的顺序,以阿里妹收到同学完成打卡后填写的表单序号为主。

第1名和第100、200、300等100的倍数打卡的同学送一个阿里云ET公仔(限量10个)
第10、20、30名等10的倍数打卡的同学送一张超大鼠标垫(限量50个)
第6名、第66名、第666名(以此类推)打卡同学送一个阿里云双肩包
第8名、第88名、第888名(以此类推)打卡的同学送一件阿里云定制卫衣
第1000名打卡的同学送上一个机械键盘!
除此之外,打卡完成编号是质数的同学可以获得一份笔记本+贴纸的纪念品(限量30份)

(部分奖品展示)

公仔.jpg

阿里云ET公仔

152.png

超大开发者社区鼠标垫

背包.JPG

阿里云定制双肩包

今日学习内容:二方库规约

阅读前需了解:

1.每日学习的知识点都节选自泰山版《Java开发手册》,如想完整阅读电子书的所有内容,请到专题页下载。

2. 根据约束力强弱,规约依次分为强制、推荐、参考三大类:
【强制】必须遵守。是不得不遵守的约定,违反本约定或将会引起严重的后果。
【推荐】尽量遵守。长期遵守这样的规定,有助于系统稳定性和合作效率的提升。
【参考】充分理解。技术意识的引导,是个人学习、团队沟通、项目合作的方向。

1. 【强制】定义GAV遵从以下规则:
 1) GroupID格式:com.{公司/BU }.业务线.[子业务线],最多4级。

说明:{公司/BU} 例如:alipay/taobao/tmall/aliexpress等BU一级;子业务线可选。

 2) ArtifactID格式:产品线名-模块名。语义不重复不遗漏,先到仓库中心去查证一下。

正例:tc-client / uic-api / tair-tool

 3) Version:详细规定参考下方。

2. 【强制】二方库版本号命名方式:主版本号.次版本号.修订号

 1) 主版本号:产品方向改变,或者大规模API不兼容,或者架构不兼容升级。

 2) 次版本号:保持相对兼容性,增加主要功能特性,影响范围极小的API不兼容修改。

 3) 修订号:保持完全兼容性,修复BUG、新增次要功能特性等。

反例:仓库内某二方库版本号从1.0.0.0开始,一直默默“升级”成1.0.0.64,完全失去版本的语义信息。

说明:任何中间件、中台业务、二方包都必须遵守此版本约定。起始版本号统一为:1.0.0,而不是0.0.1

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

说明:TDDL给SCM定制的版本号:1.0.0-SCM1。注:请尽可能在应用端来解决类冲突和加载问题,避免随意发布此类定制包。

4. 【强制】线上应用不要依赖SNAPSHOT版本(安全包除外);正式发布的类库必须先去中央仓库进行查证,使RELEASE版本号有延续性,且版本号不允许覆盖升级。

说明:不依赖SNAPSHOT版本是保证应用发布的幂等性。另外,也可以加快编译时的打包构建。

5. 【强制】二方库的新增或升级,保持除功能点之外的其它jar包仲裁结果不变。如果有改变,必须明确评估和验证,可使用jar包二进制兼容性检查工具。
说明:在升级时,进行dependency:resolve前后信息比对,如果仲裁结果完全不一致,那么通过dependency:tree命令,找出差异点,进行排除jar包;

反例:2014年,因二方库升级导致的P2以上故障数在统计榜上排名第一,大家需要高度重视。

6. 【强制】二方库里可以定义枚举类型,参数可以使用枚举类型,但是接口返回值不允许使用枚举类型或者包含枚举类型的POJO对象。
说明:由于升级原因,导致双方的枚举类不尽相同,在接口解析,类反序列化时出现异常。

今日作业

关于错误码定义与使用,你有什么好的实践?

同学们请把作业写在评论区里,如果出现了优秀作业,将再给该同学送出额外的礼品!

上期答案

正确的做法是a、b
c的错误原因:要保证信息的透明,上下游业务系统都可能会受到影响,他们也要有相应的处理措施
d的错误原因:actions做完后,必须验证通过,防止下次再次发生

点击下方图片回到Java开发手册专题页

按钮.jpg

阿里妹温馨提示:恭喜你完成了第六天的学习打卡!建议收藏专题页,每天记得上线打卡哦。只有连续七天坚持打卡,才有机会领取到奖品!

相关文章
|
2月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
81 3
|
2月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
91 43
Java学习十六—掌握注解:让编程更简单
|
22天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
36 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
49 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
2月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
33 2
|
2月前
|
存储 安全 Java
【用Java学习数据结构系列】探索顺序表和链表的无尽秘密(附带练习唔)pro
【用Java学习数据结构系列】探索顺序表和链表的无尽秘密(附带练习唔)pro
25 3
|
2月前
|
存储 安全 Java
【用Java学习数据结构系列】探索栈和队列的无尽秘密
【用Java学习数据结构系列】探索栈和队列的无尽秘密
32 2
|
2月前
|
存储 Java 编译器
【用Java学习数据结构系列】初识泛型
【用Java学习数据结构系列】初识泛型
20 2