向前兼容与向后兼容

这篇具有很好参考价值的文章主要介绍了向前兼容与向后兼容。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

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


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

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

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


前 forward 未来拓展。

后 backward 兼容以前。


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

  • 向上兼容(Upward Compatibility):与向前兼容相同。


  • 向后兼容(Backward Compatibility):指新的版本的软/硬件可以使用或运行老版本的软/硬件产生的数据。是新版本对旧版本的兼容

  • 向下兼容(Downward Compatibility):与向后兼容相同。


向前兼容与向后兼容,后端

软件的「向前兼容」和「向后兼容」如何区分?[3]

参考资料

[1]

这个问题: https://dashen.tech/2021/05/30/gvm-%E7%81%B5%E6%B4%BB%E7%9A%84Go%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7/#%E7%BC%98%E8%B5%B7

[2]

部署Spring Boot项目: https://dashen.tech/2022/02/01/%E9%83%A8%E7%BD%B2Spring-Boot%E9%A1%B9%E7%9B%AE/

[3]

软件的「向前兼容」和「向后兼容」如何区分?: https://www.zhihu.com/question/47239021

本文由 mdnice 多平台发布文章来源地址https://www.toymoban.com/news/detail-683371.html

到了这里,关于向前兼容与向后兼容的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3+elementPlus登录向后端服务器发起数据请求Ajax

    后端的url登录接口 先修改main.js文件 login.vue 此时前端有跨域问题 先配置跨域 vue.config.js  项目中如果没有这个文件 请自行创建。 此时可以看到跳转到登录到home页面  完整的后端登录方法  消息提示使用elementPlus 的Elmessage 

    2024年01月18日
    浏览(43)
  • 【若依】框架搭建,前端向后端如何发送请求,验证码的实现,开启注册功能

    若依框架(Ruoyi)是一款基于Spring Boot和Spring Cloud的开源快速开发平台。它提供了一系列的基础功能和通用组件,能够帮助开发者快速构建企业级应用。若依框架采用了模块化的设计理念,用户可以选择需要的功能模块进行集成,也可以根据自己的业务需求进行扩展。若依框架

    2024年02月12日
    浏览(56)
  • uni-app -- - - - 小程序如何向后端发送Form Data格式的数据

    接口请 求方式 传参方式 ,肯定不是一成不变的,当遇到如题需求的时候,要知道, 小程序是没有FormData对象 的,那么该怎么操作呢??? 直接上代码: 效果如图: 如上所示,这样写起来功能实现了,但是看起来这代码太不美观了 效果如图: 参考文章: 使用wx.request发送

    2024年02月08日
    浏览(40)
  • 前端向后端发起请求时,报Uncaught (in promise) ReferenceError: ***** is not defined的错

     前端调用后端的接口,显示的Uncaught (in promise) ReferenceError: getGoods is not defined。但是我们在后端中配置了该接口的请求地址的。同时在前端的axios中也进行了相关接口的封装的。 报错的截图:   原因是没有在页面中引入getGoods这个封装好的接口。 解决方法:只需在需要使用的

    2024年02月08日
    浏览(63)
  • Recorder 实现语音录制并上传到后端(兼容PC和移动端)

    Recorder 首页:https://github.com/xiangyuecn/Recorder 1. HTML页面 2. 引入插件 3. 方法 使用 示例 备注: 如果本地开发的时候,浏览器提示录音open失败:浏览器禁止不安全页面录音。可通过开启https解决问题 本文参考文章(做了部分修改):https://blog.csdn.net/IAIPython/article/details/134611674

    2024年02月21日
    浏览(43)
  • 步步向前,曙光已现:百度的大模型之路

    大模型,是今年全球科技界最火热,最耀眼的。在几个月的狂飙突进中,全球主要科技公司纷纷加入了大模型领域。中国AI产业更是开启了被戏称为“百模大战”的盛况。 但喧嚣与热闹之后,新的问题也随之而来:大模型的力量究竟能否持续发展?在拥有了许多大模型

    2024年02月12日
    浏览(34)
  • [向前一小步]Android简单实现指纹识别登录

    指纹识别在Android的开发中可以说是不怎么常见,但是Google对于生物识别缺失很重视,显示废弃了以往的Android6.0推出的FingerprintManager ,后针对Android9.0以上更新推出了BiometricPrompt。 Android指纹识别的应用场景其实还算挺多,只不过区别于ios系统,Android手机的硬件都是由各厂商生

    2024年02月13日
    浏览(36)
  • paddleocr 实操笔记 (前向后梳理)

    要点: 参考: 基于PaddleOCR的数字显示器字符识别 工业仪表数值识别 问题分析  要处理电表中的数据,可以分为步骤,拆解为以下问题: 感兴趣区域定位问题 OCR读数问题 针对问题1,经过实验与探索,也找到两种方案: 方案1,直接利用PaddleOCR默认自带的检测器 ,筛选掉其他

    2023年04月19日
    浏览(27)
  • 构建之法 - 软件工程实践教学:每天都向前推进一点点

    作者:福州⼤学 汪璟玢⽼师 汪老师:每次都向前推进一点点,哪怕只有一点点,也好过什么都不做。 ​邹老师:对,几个学期下来,就已经超过那些“空想”的团队很远了。坚持下去! 汪老师:团队Git现场编程实战。 邹老师:这个效果很好,建议在更早的时间让学生实践

    2024年02月13日
    浏览(47)
  • 向后切片,正向切片和其他形式的切片

    向后切片Backward Slices 假设我们希望确定哪些语句影响节点 n。 这是由 n 和在 n 处引用的变量。 我们只是: 从 n 回溯控制和流依赖边。 我们保留由此到达的节点。 一般后向切片 通常,我们的切片标准是一个节点和一个变量集 V。 PDG 可能不包含表示此切片标准的节点。 对于

    2024年02月07日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包