【Android Meditation】从客户端和服务端看APP版本兼容问题

前言

业务调整,需求变动,客户端和服务端代码的改动如何最大限度地照顾到老版本的兼容性

思考

  • 面向对象的六大原则中,一个很重要的原则叫做开闭原则,具体说来就是,软件应向扩展开放,对修改封闭。也就是说,你可以添加功能,但是不要随意修改已有的功能
  • 接口设计的核心在于抽象,底层逻辑 一定要足够抽象,需要与实现的业务逻辑适当分离, 能够应付长期的、可变的应用场景
  • 接口要有版本区分,如/api/v1/android,/api/v1/ios ,/api/v2/android,/api/v2/ios
  • 从早期就有一个稳定的错误代码系统及处理规范。我想大多数的服务器请求都会返回status\errorMsg\code之类的信息,我们可以在一开始就定义各种错误码(接口过期、用户信息过期、服务器异常、服务器升级中),这样子可以避免后期维护太多的API版本,也能引导用户升级
  • 根据APP的更新频率,只允许同时两到三个版本存活,然后提醒客户端更新,不更新的话等到协议的版本过期了,就无法使用

做好兼容和容错

  • 对于服务端返回的数据,尤其涉及类型判断的一定要做好容错,只处理当前版本支持类型,丢弃其它异常类型,避免接口更新(如添加新的支持类型)导致客户端无法处理导致的崩溃,当然异常数据的处理需要根据实际操作,在解析时处理,或者在逻辑判断时处理。
  • 如果旧版本没处理好,那么接口就需要进行升级了,所以这个兼容和容错需要两方互相协作
发布了97 篇原创文章 · 获赞 87 · 访问量 32万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览