最近在项目中经常遇到软件版本升级后不兼容旧版本的问题,本文根据以往经验,从软件接口设计、实现等方面整理了一些兼容性设计思路。
1. 优化设计
1)接口返回值的定义
有的人喜欢用0、1等较小的数字标记返回码或其他一些常量含义,比如我接触过几个项目,使用整型常量0作为成功的返回码,在以后的使用中,可能遇到的问题是整型的缺省值为0,这种情况下逻辑上无法区分没有返回值还是返回了0,如果某天出现了此类问题,也很隐蔽很难排查。一旦这些常量定义下来,想要修改的代价会非常大或无法修改。所以,在定义这些常量时,要尽可能的考虑到各种可能的情况,不防将数字宽度放大点,预留出扩展空间。
2)版本号处理
初始设计时,应当在消息中保留版本号字段。这样一来,当未来需要做出重大