App 开发版本兼容

一款App上线,尤其是在版本迭代过程中,总会遇到产品不同版本的兼容性问题,保证新版功能的同时,还要考虑对老版本产品的支持,如果新版本还没有审核通过,老版本的应用就不能使用了,这样的用户体验肯定非常不好。
我一直从事移动端开发,以前对这方面内容考虑不是很多,最近开始带团队,开始遇到这样的问题,查阅了部分文章,在这里简单总结一下。

知乎如何做好app不同版本的服务器兼容?
https://www.zhihu.com/question/30682469

部分内容转载:http://blog.csdn.net/u013628152/article/details/51786879

(1)API有版本区分
比如 https://api.example.com/v1/user/ID https://api.example.com/v2/user/ID https://api.example.com/v3/user/ID

(2)API可以与实现的业务逻辑适当分离 比如API只是做一些参数的识别与匹配,具体的一些业务逻辑放到单独的Business Layer去处理,比如老版本的接口少了个参数,不是特别致命,给老版本过来的请求加一个默认的参数;

(3)一般向下兼容2个版本

(4)从早期就有一个稳定的错误代码系统及处理规范。 大多数的服务器请求都会返回status\errorMsg\code之类的信息,我们可以在一开始就定义code=911是接口已过期请升级客户端,这样子可以避免后期维护太多的API版本,也能引导用户升级;对不能继续兼容的API版本进行报错处理(或者说强制更新)。

(4)最最底层的东西,一定要足够抽象, 能够应付长期的、可变的应用场景;

(5)小版本号尽量做到兼容,大版本号更新可以考虑强制升级;

(6)版本使用监控。 当观察到所有用户都使用新版本的客户端的时候,并保持一段时间的时候。放弃对老版本的维护,继而下掉老版本的资源。

(7)涉及到与旧版本数据关联不大的新数据,只要新加数据表,做一定的冗余即可;逻辑层需要新增参数,加默认值来兼容旧版本

(8)正在尝试使用React Native进行新版本客户端的开发,这样就可以用CodePush或者其他方案进行静默更新了

    原文作者:凌宇之蓝
    原文地址: https://www.jianshu.com/p/448c865d8ec1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞