挖井

类库大魔王的挖井日记

挖一口属于自己的井


被第三方库接口变化给坑了

Yiili论坛程序是从wetalk改过来的,所以是用了beego这个Web Framework的。前两天Beego从1.2.0升级到1.3.0,有一个用到的接口被删了,用另一个新增的接口替代,于是Yiili就编译不过了。其实据说这个被删掉的接口已经有3,4个版本标记为deprecated了,只是我才接触beego差不多1个月,所以肯定不会知道这回事的,于是即使自己照猫画虎地尝试修改,即使能编译通过了,运行也仍然不正常。Beego的官方论坛上也有人在喊这个问题,一直到第二天,Beego的作者astaxie大概实在受不了人的呱噪,直接把wetalk的不兼容代码给改了。这次事件给我的感觉非常不好,还跑到Go的中文邮件列表去问遇到这种第三方库接口变化引起不兼容的问题该怎么解决。结果有人说,官方的做法是把第三方库在自己的代码库里copy一份,唔,这是我最不喜欢的做法,像svn external,git submodule不都是为了避免这种做法吗!但是go get不支持版本,所以是没办法做到的。还有人提出个我觉得还能接受的办法,在GOPATH里加3个路径,第一个专门放go get取下来的第三方库,里面的东西随时可以删掉,第二个专门放被自己修改过或认为是stable的第三方库,可以保证自己的项目能编译通过的,第三个专门放自己的项目代码。

本文地址:

https://minidump.info/blog/2014/06/trapped-by-incompatible-interface-3rdparty-libraries/

上一篇

被GCC坑了一把

前几日在重构一个小模块。这个模块的架构本来就很畸形,因为它被要求在不同的设备不同的平台不同的endpoint上运行不同的逻辑,却要做在一个模块里,能给用户一个.a或.lib就可以使用。于是第一版的实现中就有一个变量来区分当前endpoint是哪个,开始还好,后来越来越多的if条件判断endpo...…

Job 全文阅读
下一篇

项目进展

Yiili和MiaoCoffee是基于同一个codebase,目前的区别主要在描述性文字等周边部分。现在Yiili和MiaoCoffee都算正式上线了,之后的工作重心就在运营上了。MiaoCoffee的运营我肯定基本上是不管的,那个其实不算我自己的项目,我的主要精力将放在Yiili上,Yiil...…

Startup 全文阅读