向前兼容与向后兼容

简介: 向前兼容与向后兼容

2012年3月发布了Go 1.0,随着 Go 第一个版本发布的还有一份兼容性说明文档。该文档说明,Go 的未来版本会确保向后兼容性,不会破坏现有程序。

即用10年前Go 1.0写的代码,用10年后的Go 1.18版本,依然可以正常运行。即较高版本的程序能正常处理较低版本程序的数据(代码)

反之则不然,如之前遇到过的这个问题:在Mac上用Go 1.16可正常编译&运行的代码,在cvm服务器上Go 1.11版本,则编译不通过;

再如部署Spring Boot项目时遇到的,在Mac上用Java 17开发并打的jar包,在cvm服务器上,用Java 8运行会报错

一般会认为向前兼容是向之前的版本兼容,这理解其实是错误的。

注意要把「前」「后」分别理解成「前进」和「后退」,不可以理解成「从前」和「以后」

线上项目开发中,向后(后退)兼容非常重要; 向后兼容就是新版本的Go/Java,可以保证之前用老版本写的程序依然可以正常使用

前 forward 未来拓展。

后 backward 兼容以前。

  • 向前兼容(Forward Compatibility):指老版本的软/硬件可以使用或运行新版本的软/硬件产生的数据。“Forward”一词在这里有“未来”的意思,其实翻译成“向未来”更明确一些,汉语中“向前”是指“从前”还是“之后”是有歧义的。是旧版本对新版本的兼容 (即向前 到底是以前还是前面?实际是前面
  • 向上兼容(Upward Compatibility):与向前兼容相同。
  • 向后兼容(Backward Compatibility):指新的版本的软/硬件可以使用或运行老版本的软/硬件产生的数据。是新版本对旧版本的兼容
  • 向下兼容(Downward Compatibility):与向后兼容相同。

微信截图_20230627110629.png

目录
相关文章
|
2月前
|
机器学习/深度学习 自然语言处理 Serverless
介绍一下什么是兼容性函数
介绍一下什么是兼容性函数
26 0
|
6月前
|
JavaScript
什么是类型兼容?
什么是类型兼容?
39 1
|
8月前
|
Android开发 C++
so兼容32位和64位
在Android开发中遇到32位`xxx.so`动态库在64位设备上运行失败的问题,导致应用崩溃。错误提示因缺少64位版本的库。尝试创建`arm64-v8a`目录并复制库文件后,依然崩溃,因为库本身是32位。解决方案是在`build.gradle`中添加配置,指定支持的ABI滤镜,并在`gradle.properties`中设置`android.useDeprecatedNdk=true`,以解决兼容性问题。
175 7
|
Java Go Spring
向前兼容与向后兼容
向前兼容与向后兼容
117 0
|
存储 SQL JSON
一文读懂 ClickHouse V22.8 新版本重要特性
ClickHouse 又双叒叕发布新版本了。
一文读懂 ClickHouse V22.8 新版本重要特性
|
存储 安全 前端开发
PostgreSQL 12 文档: 部分 VII. 内部
部分 VII. 内部 这一部分包含PostgreSQL开发者可能用到的各类信息。 目录
101 0
|
SQL 安全 关系型数据库
核心特性—MySQL生态兼容
PolarDB-X将兼容MySQL以及周边生态作为核心设计目标之一。本文从SQL语法、事务行为、导入导出等维度总结了兼容性的相关特性。
194 0
|
SQL 存储 JSON
PostgreSQL 14 版本特性浅析
## 性能增强 ### 大量连接高并发优化 - 场景: SaaS场景,微服务架构下的中心库场景 - 业务特点:客户端多,在线用户多,数据库并发连接非常多 - 价值: 比连接池网络少1跳, 性能更好, 支持绑定变量等连接池会话模式不支持的全部功能 ### 索引增强 1. 缓解高频更新负载下的btree索引膨胀 - 场景: 数据频繁更新,如游戏、交易、共享出行、IoT等行业 - 价值: 减少膨胀
|
关系型数据库 数据库 PostgreSQL
找对业务G点, 体验酸爽 - PostgreSQL内核扩展指南
基于PostgreSQL打造最好用的私人订制数据库 花了2个通宵,写了一份入门的PostgreSQL内核扩展指南。 希望更多人对PostgreSQL内核扩展有个初步的了解,内核扩展并不需要对数据库内核有非常深的了解,用户只要把重点放在业务上,利用PostgreSQL开放的API实现对数据
23950 2
|
测试技术 API PouchContainer
PouchContainer 开源版本及内部版本一致性实践
PouchContainer 开源版本及内部版本一致性实践 为什么要做内外版本一致 对外开源是提升影响力、共建生态的有力手段。在项目对外开源的过程中,首先是将可以开源的部分抽离出来,发布一个“开源版本”,与内部基础设施相关的部分则留在内部版本中。
2408 0

热门文章

最新文章