但上面这些理由我觉得都不够充分。
在我看来最重要的理由是:以日期为版本号,让依赖库的开发方和下游依赖方达成了默契。
阿里巴巴的实践
Pandora 是阿里巴巴内部的隔离容器。在 14 年时,Pandora 包版本号是这样子的:
2_1_0_3 , 2_1_0_4_10-LOG
后面改为 Pandora 版本 + 日期
2_2_140825, 2_2_140905
但实际上应用方并不关心 Pandora 的版本,所以改成了现在的风格:
2020-04-release-fix , 2020-10-release
好处是:
按时间节点推动升级
电商的业务都是时间为关键节点的,比如 618/双 11。中间件和应用方达成了一个默契:到关键时间点,业务方使用中间件推出的稳定版本,如果出了事故那么就是中间件的锅。不升级,则是业务方自己的锅。
推动升级的阻力变小
当业务方遇到问题时,一看版本号是 1 年多前的,很自然就会想到升级。
依赖提供方要按时间保持更新
维护人员本身要不断发版本证明自己的生命力。下游用户也可以根据时间选择是否要切换到其它的新技术路线上去了。
对于一些总体的依赖,比如公司内部的 maven bom,都建议使用时间做日期。
比如 Spring 2.5.6 版本,大部分开发都知道它是比较旧的依赖,但不会有太大的动力去管。
但是如果你说,这是 12 年前的代码(绝大部分开发还没毕业),那么开发人员就知道很容易会出现不兼容的问题,他自己就知道应该要升级了。
以时间为版本号,既是对用户的承诺,也是对开发者自己的鞭策。
读者福利
感谢你看到了这里!
我这边整理很多2021最新Java面试题(含答案)和Java学习笔记,如下图
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
写在最后
还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…
,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存**,Hadoop,Spark,Storm,YARN,机器学习,云计算…
[外链图片转存中…(img-KX2ubyV1-1711786321255)]
好文推荐
发表评论