最简单的接口兼容性方案0519

这里的接口指的是团队开发中,模块间的函数接口,或者跨进程的协议接口。

俗话说有人的地方就有江湖,在软件开发当中,有人的地方就有接口,有接口就要考虑兼容性问题。平心而论,一般新软件,前面的版本,考虑太多接口兼容性问题不现实,因为前面的版本改动特别大,两个版本之间面目全非的情况比比皆是。但是到了一定阶段,接口就急需要稳定,因为不兼容的接口带来的成本太高了。

最简单的接口兼容性方案就是永远只新增接口,然后老老实实的等着旧接口自然消亡,当然这个过程非常痛苦,但是习惯了也没有什么。这里还是有几条建议,可以缓解这个痛苦的。

  1. 既然选择了新增接口来支持兼容性,就不要再去尝试其他方案,也就是将这条路走到黑,避免多种接口兼容性策略同时生效,反而让使用者糊涂。

  2. 项目团队中形成共识,每当新接口和老接口有替换关系时,就尽量在主分支主动升级到新接口,然后让新接口自然在未来某个版本中自然生效。

  3. 新接口和老接口在命名上应该有一个自然的替换关系,比如说老接口叫 GetBigBook,新接口叫做GetBigBook2,虽然很俗气,一旦团队内都采用类似风格,也可以接受。将来排查那些GetBigBook没有替换完毕的时候也很方便。

  4. 如果新增了参数,尽量将新增的部分放在尾部或者头部,别头部放一个,尾部放一个,减少使用者更换接口时的不适感。好的新接口设计,甚至可以实现批量替换。这里不详细描述了。跨进程的接口协议,可以在使用侧先用函数封装一下组装报文的部分,后面报文格式变了,最终也就变成了函数的替换。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容