API的非向后兼容性无论如何通常代表着一种比较差的设计

不管一个类库或者工具方法实现多么的好,如果无法做到向后兼容性,通常会给用户带来很大的升级成本,很多对此的依赖如果希望在后续的升级和维护期间使用该类库的其他新增特性或者好处,将不得不推迟升级亦或是被迫接受改变。

无论这个类库实现的多么完美或者流行,如果版本升级意味着大量API或者包名的变更,我认为很大程度上是因为设计者意识到从维护的角度来说,这个类库的实现非常的糟糕,以至于已经非常的难以维护下去了。

在开源的社区,做这种变更或者说犯这种错几乎不需要付出任何成本,所以很多的类库甚至非常流行的类库都有发生大版本间API的完全重构,如果是商业类库,除非有适配API,恐怕用户都跑光了。常见的类库有如下:

jackson:

1.x:org.codehaus.jackson

2.x:com.fasterxml.jackson

由此带来的是大量类路劲的变化,spring HttpMessageConverter针对1.x和2.x的分别实现;到了spring 4.x,MappingJacksonHttpMessageConverter又被spring给删除了。

dbcp:

1.x:

2.x:

apache.common.lang:

2.x:

3.x:

log4j :

1.x:

2.x:

common.pool

1.x:

2.x:

netty:

4.x:

3.x:

不过主流的容器和应用服务器以及数据库则做的好的多,比如tomcat/nginx/mysql/postgresql/rabbitmq。

转载于:https://www.cnblogs.com/zhjh256/p/5977319.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习《css世界》笔记之使用css实现凹凸效果

显示效果 HTML <span class"ao"></span> <span class"tu"></span>CSS .ao,.tu{display: inline-block;width: 0;font-size: 14px;line-height: 18px;margin: 35px;/* color: #fff; *//* 文字颜色 */}.ao:before,/* :before的主…

第二届河南省大学生程序设计竞赛 Dr.Kong的机器人

Dr.Kong的机器人Dr.Kong设计了一个可以前进或后退机器人&#xff0c;该机器人在每个位置i会得到一个移动步数的指令Ki (i1,2„N),聪明的机器人自己会判断是要前进Ki步还是后退Ki步。例如&#xff1a;给定指令序列(3 3 1 2 5)&#xff0c;表示机器人在第1个位置时&#xff0c;可…

PHP操作Redis常用技巧

From: http://www.php.cn/php-weizijiaocheng-395387.html 这篇文章主要介绍了PHP操作Redis常用技巧,结合实例形式总结分析了php针对redis的连接、认证、string、hash等操作技巧与注意事项,需要的朋友可以参考下 本文实例讲述了PHP操作Redis常用技巧。分享给大家供大家参考&am…

IO调度算法

IO调度算法的选择 一) I/O调度程序的总结 1) 当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成. 2) 每个块设备都有它自己的队列. 3) I/O调度程序负责维护这些队列的顺序,以更有效地利用介质.I/O调度程序将无序的I/O操作变为有序的I/O操作. 4) 内核…

ORA-01555 原因与解决

ORA-01555 原因与解决&#xff1a; 前面提到了ORA-01555错误&#xff0c;那么现在来看一下ORA-01555错误是怎样产生的。由于回滚段是循环使用的&#xff0c;当事务提交以后&#xff0c;该事务占用的回滚段事务会被标记为非活动&#xff0c;回滚段空间可以被覆盖重用。那么一个问…

使用css优雅解决文字两端对齐的方式之一

效果图 HTML <body><div>学校</div><div>班级</div><div>班主任</div><div>上课时间</div><div>名字</div></body>CSS div {margin: 10px 0;width: 70px;border: 1px solid brown;text-align: just…

centos7 下安装Poco

参考&#xff1a; https://pocoproject.org/download.html 以下是我自己安装时的步骤&#xff0c;亲自实践&#xff01; 1. 下载 git clone -b master https://github.com/pocoproject/poco.git 2. 安装依赖包 切换至root用户 yum install mysql mysql-devel mysql # 我…

DPlist

DP大法&#xff08;之POJ&#xff09;&#xff1a; [1]POJ 动态规划题目列表 http://cippus.dlut.edu.cn/forum/posts/list/45.page容易&#xff1a; 1018,1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 1322, 1414, 1456, 1458, 1609, 1644, 1664…

学习《css世界》笔记之loading三点动画效果

动画实例 HTML <div>正在加载中<span>...</span></div>CSS span {display: inline-block;height: 1em;line-height: 1;text-align: left;vertical-align: -0.25em;/* 属性设置元素的垂直对齐方式。指定为负长度&#xff0c;可以使元素降低 */overfl…

关于今天

今天天气晴朗,晴空万里,万里无云,哈哈... 早上起来的时候,大雾,妖风四起. 然后早上起来居然就玩了一天的 冰封要塞. 说说玩了后的心得吧. 推塔游戏,额,这是CF第一次推出的这种模式.可以说和dota和英雄联盟有些相似.估计是某人从dota和英雄联盟这么火的情况下想出来的这招. 推塔…

Mac下安装event库

因为使用的GatewayWorker框架使用了swoole&#xff0c;但swoole依赖于event&#xff0c;所以必须安装下event扩展&#xff01; 1. 最初使用brew install libevent安装了下&#xff0c;运行gatewayworker发现错误依然存在&#xff01; 2. 考虑到是php里使用event&#xff0c;所…

Road Construction

【题目描述】 某岛屿上有N个旅游景点&#xff0c;任意两个旅游景点之间能够连通&#xff0c;但道路部门正在对某条道路进行施工&#xff0c;禁止游客通行&#xff0c;为了使所有旅游景点依然能够正常开放&#xff0c;道路部门决定搭建一些临时桥梁&#xff0c;使得无论哪条道路…

学习《css世界》笔记之content自动添加开启闭合符号

实例 HTML <p lang"zh"><q>啦啦德玛西亚</q></p><p lang"en"><q>This book is very good!</q></p><p lang"no"><q>denne bog er fantasisk!</q></p><p class"…

Sybase用户登录以后的自动运行脚本

最近开始学习sybase&#xff0c;对学习过程中遇到的问题会在此做以记录&#xff0c;希望和大家共同来学习。 sybase&#xff08;ASE&#xff09;在用户登录之后可以指定自动运行一个脚本&#xff0c;执行指定的操作。一般为自定义的存储过程。 15.7之前的版本采用 添加&#xf…

php自动加载指定目录下的类文件

From: https://www.cnblogs.com/CpNice/p/4369399.html 网上找到的类&#xff0c;非常有用&#xff0c;文件名: autoload.php <?php /*** Created by PhpStorm.* User: zcm* Mail: zhouciming163.com* Date: 2018/10/10 上午10:20*/if(!defined(ROOTDIR)) {define(ROOTDI…

maven+jetty项目在tomcat部署

步骤1&#xff1a;项目打包 clean install 步骤二&#xff1a;拷贝war 包到tomcat下 步骤三&#xff1a;修改server.xml文件的端口 步骤四&#xff1a;启动tomcat,注意jetty的项目是不需要带项目名的&#xff0c;Tomcat的项目需要加上项目名。 温馨提示&#xff0c;在启动tomca…

学习《css世界》笔记之多行文本实现垂直居中

效果图 HTML <div class"box"><div class"content">具有行高实现的多行文字垂直居中效果&#xff0c;需要属性vertical-align帮助</div> </div>CSS .box{width: 200px;line-height: 120px;background-color: #f0f0f0;}.content{…

c++服务器websocket支持

From: https://blog.csdn.net/u010223072/article/details/80637127 介绍 目前公司服务器是c tcp的网络架构&#xff0c;现在想用这套做h5游戏&#xff0c;所以要扩展支持websocket通信。 那么什么是websocket&#xff1f;它和tcp有什么区别&#xff1f;这些随便一搜一大把&…

Ubuntu10.04制作官方源镜像以及搭建本地源

不能上网、网速慢、共享等等需求&#xff0c;使我们不能或者不想使Ubuntu10.04在线安装软件包&#xff0c;而是需要一个本地的更新源。通过apt-mirror工具&#xff0c;我们可以轻松制作官方源的本地镜像&#xff0c;通过本地镜像&#xff0c;我们可以本地安装更新软件. 1. 安装…

学习《css世界》笔记之使用vertical-align数值实现文字和小图标对齐

效果图 HTML <p>请选择<i class"icon-arrow"></i></p> <p>请选择<i class"icon-arrow valing-1"></i></p> <p>请选择<i class"icon-arrow valing-2"></i></p>CSS .i…