应对库接口原型变更
也许你经常遇到这类情况:你在代码里使用了别人提供的第三方库,当库升级为新版本后,你的代码在编译时无法通过,提示接口原型错误,经查发现原来是该第三方库提供的某接口的原型发生了变化,比如原接口被删除、增加了参数、参数减少了、修改了参数类型以及返回类型发生变化了等等。你也许会不由自主的大骂一句:F\*\*k。 我们换位思考一下,假如你是某个库的Owner,当你遇到需要修改接口原型的情形时,你应该如何去做...
也许你经常遇到这类情况:你在代码里使用了别人提供的第三方库,当库升级为新版本后,你的代码在编译时无法通过,提示接口原型错误,经查发现原来是该第三方库提供的某接口的原型发生了变化,比如原接口被删除、增加了参数、参数减少了、修改了参数类型以及返回类型发生变化了等等。你也许会不由自主的大骂一句:F\*\*k。 我们换位思考一下,假如你是某个库的Owner,当你遇到需要修改接口原型的情形时,你应该如何去做...
今天上午处理了一个线上产品的故障。分析来分析去,最后定位问题还是出在字节序转换的环节上。 其实测试组早在产品上线前就曾报告了这个问题,但是对应的开发人员并未对该问题进行深入地分析,而是有些草率地将该问题归结为客户端模拟器的实现不符合标准。因为这位同事比较资深,所以当时我也没有给予足够关注。 产品今天凌晨上线,9点左右业务量开始增大,这个问题立即就被我们在现场的运维人员发现,还好我们的系统是集群式的...
部门一直使用Subversion作为源码版本的管理工具。说实话,Subversion比较适合目前部门的绝大多数项目:没有异地团队开发,代码中心化管理;基本上都在trunk上开发,较少使用分支,基本上没有在各个branch间切换的成本。但对于我来说,有些情况下Subversion并不能满足我的需求。 问题主要集中在本地代码的备份和版本管理上。也就是说对于尚未或暂无法提交到Subversion服务器的...
今天凌晨国际足联公布并颁发了2010年度国际足坛的各大奖项,最让我感到欣喜的是巴萨国王梅西当选首届国际足联金球先生,蝉联了金球奖。 说实话,真的没有想到我的期望能变成现实。不过最终结果出炉前还是有种种迹象表明梅西是有机会的。首先就是梅西压倒去年表现优异的斯奈德,与两位世界冠军队友哈维和伊涅斯塔携手入围金球三甲。其次就是在今天凌晨当普斯卡什年度最佳进球奖被授予土耳其人阿尔滕托普后,我的内心对梅西的当...
周四下午,收到同事的一封mail,他告诉我他的业务代码中使用的一个库接口的行为与预期不同,并在mail中给出了测试代码和测试结果。而这个接口是之前由我封装实现的。 这个库仅仅是对libevent做了一层薄薄的封装,目的是使其接口的使用方式符合部门的一贯风格。虽说封装简单,但单元测试也是一应俱全,不敢马虎,必要的地方mock也一并上阵,总体来说我个人还是比较满意的。 不过还是出现了问题,问题出在li...