博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件开发中关于向后兼容的理解
阅读量:6801 次
发布时间:2019-06-26

本文共 491 字,大约阅读时间需要 1 分钟。

假设有A、B两个程序,

这两个程序可能是同一小组的两个人来维护的,也可能是两个不同小组来维护的,
也可能是两个不同部门来维护的,甚至有可能是两个不同的公司来负责维护的。

现在假设A程序对某函数进行了修改,比如原先通过

kill(pid, SIGSTOP)向B程序发送SIGSTOP信号,而现在却通过
kill(pid, SIGUSR1)向B程序发送SIGUSR1信号。
原先B程序是在收到SIGSTOP这个信号之后才去做相应的处理,
而A程序改成了发送SIGUSR1,从而导致问题的出现。

通常这种不向后兼容的情况有:

1. A程序接口参数变化,这会导致B程序出现编译时或运行时错误;
2. A程序接口功能减少,这会导致B程序功能的减少;
3. A程序接口移除,这会导致B程序运行时错误。

实例演示:

1. A + B OK;
2. A + C OK,但是A + B NG;
这里A类似于库函数,而B和C类似于基于库函数的应用程序。
向后兼容是对函数或功能提供方提出的要求。

问题:

A1 + B OK;
A2 + C OK;
那A1 + C呢?
这里是对应用程序的要求(有难度)。

 

转载地址:http://lmuwl.baihongyu.com/

你可能感兴趣的文章
W3C发布DRM作为推荐方案
查看>>
前端计划——Codewars的一些JavaScript题集
查看>>
红帽论坛北京站召开 设立亚太开放创新实验室
查看>>
Spark生态顶级项目汇总
查看>>
EF Core 2.1路线图:视图、GROUP BY和惰性加载
查看>>
NetBeans在Apache基金会取得的进展
查看>>
Netflix实时流处理平台Keystone介绍
查看>>
一文带你快速读懂.NET CLI
查看>>
深入探索JVM自动资源管理
查看>>
实现TeX的算法:回首编程技术的过去三十年
查看>>
re:Invent大会第四天:为什么Lambda值得你更多关注?
查看>>
B端大数据应用的架构实践与思考
查看>>
Cascade:自动化测试“旅程”
查看>>
2018年十大云宕机事故盘点:主流无一幸免!
查看>>
美团开源实时监控系统 CAT 3.0 发布:多语言客户端及多项性能提升
查看>>
开源项目koa-router被叫卖,周下载10W+只要5000美元
查看>>
360首席安全官谭晓生宣布离职
查看>>
微软正式发布Azure Functions 2.0
查看>>
Swift 4.2进入最后开发阶段,为Swift 5铺平道路
查看>>
爱立信电信软件的持续交付
查看>>