应对库接口原型变更

 

也许你经常遇到这类情况:你在代码里使用了别人提供的第三方库,当库升级为新版本后,你的代码在编译时无法通过,提示接口原型错误,经查发现原来是该第三方库提供的某接口的原型发生了变化,比如原接口被删除、增加了参数、参数减少了、修改了参数类型以及返回类型发生变化了等等。你也许会不由自主的大骂一句:F**k。

我们换位思考一下,假如你是某个库的Owner,当你遇到需要修改接口原型的情形时,你应该如何去做呢?这里考量出一些方法供参考:

1、谨慎评估:是否一定非得修改接口原型这么做,是否有其他办法解决此问题,毕竟修改接口原型涉及改造面太大了;

2、退而求次,另立新接口,并告知调用者本库的那个老接口已经被标识为obsoleted了。以后就不要用再用该接口了,而是直接用新的吧;

3、如果实在迫于无奈,只能变更接口原型才能达到目的,那么也要小心驶得万年船:考虑到你的客户,小心翼翼地规划库版本,可将那些无需变更接口的需求放入小版本中,支持快速发布,满足调用者需求;而那些只能通过变更接口才能实现的需求,可考虑都汇总到后续发布的某个较大版本的分支中,这样发布间隔变长,也在一定程度上降低了调用者为适应新库而进行修改的频度。

其实我们很是希望在进行库设计时,一旦接口原型敲定,就再也无需变化。但现实是残酷的,变化是永恒的。我们只能更加关注和完善前期设计,尽量减少而却无法避免接口原型变更的可能。

 

说书单2011.01.24

2010年末的网上卖书大战进行的如火如荼,在这场大战初期我就低价收了《深入理解计算机系统》第二版,放在书柜里待有时间重温。记得当初还是在LP学校的图书馆里借到了这本书的第一版,并在第一个借阅期内看完了除第四章”处理器体系结构”之外的所有章节。之后又恋恋不舍,让LP续借了一次。我对这本书还真有一种相见恨晚的感觉,真遗憾我在大学期间怎么没发现这样一本好书呢。

网络卖书大战到现在也基本接近尾声了,不过我却又有了买书的冲动,也算是给自己的新春贺礼吧,春节长假也有好书来消遣了^_^。遂下午在亚马逊下了单(还有满99送畅销书的活动哦^_^)。书单如下:

少有人走的路:心智成熟的旅程》,这本书dutor推荐的,豆瓣上的口碑也不错,书不厚,比较符合现在的我的胃口;

苏菲的世界》,这本书买来就是为了弥补高中和大学时未能读过这本书的遗憾,同时也算是哲学入门学习路上的一站吧。

卡尔·萨根的《宇宙》,自从霍金的《时间简史》插图版后,似乎好久没有读这方面的科普读物了,这次想找回点感觉,让脑力在广袤无垠的宇宙里激荡一下。

电子设计从零开始》和《电子电气工程师必知必会》2nd让我重新拾起了老本行。我非计算机科班出身,大学是学电子电路相关专业的,后因着迷计算机编程而忽视了本专业的学习。现在计算机是主业了,电子电路反倒成兴趣了^_^。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats