今天接了一个USB温湿度设备,沟通接口浪费的时间比我最终完成花的时间都长。不理解那个厂家为何做如此脑残的接口设计,在底层dll之上又封装了一层给c#调用的dll说是对外提供的接口,而我Delphi居然却完全无法调用,用depends工具明显可以看出底层dll对外的接口而无法看到外层dll接口,再看底层接口有个读取USB数据的接口,于是我想直接调用那个底层dll就可以了,所以问厂家从读取的数据中如何解析出温湿度数据——如果底层接口中直接提供获取已经计算好的温湿度数据不就行了,没想到他们居然说指令保密不提供,我真是气愤,看他们代码是c#的,就尝试用反编译工具从他们封装的dll中找到对应计算温湿度数据的代码,然后按照其中的公式重新实现,没想到很快就好了,对厂家无语,解决问题就好。
之前抱怨了这个问题很久,为什么厂家不能保证接口、协议不变,每次升级都要我们对应修改代码,弄得我早想换其他厂家了,不过还好这次问题解决就暂时忍了。保持接口不变或者说要向下兼容是对外接口一定要考虑好的。从广泛意义上讲每个人都应该保持自己对外的“接口”不变,自己内部可修炼提升,但对外人的做事风格尤其是承诺绝不能轻易改变,否则就失去信任,然后被孤立在群体中消亡,到时在想改变就要付出更高的代价,这也是之前工作积累的一个教训。
信守承诺,维持接口不变,不仅对别人,对自己也要如此,始终保持梦想,不放弃!