兼容性,从Windows上就已经知道这个词语了
不兼容是件很头疼的事情,而今天一个小事儿就导致了兼容性问题,而我却没有考虑到,还好在给组长说到这个接口,组长问了起来,才发现原来没有考虑到兼容性的问题!
本来是这样的,有一个界面A的一个接口,我们需要传递一个indusId,但是当项目上线后,我们才发现有些界面并没有给界面A传过来,所以我们的indusId都是一个空字符串,这样导致了后台找不到数据,我们app上直接提示网络不佳.
后来我们需要修改该接口的indusId参数,我告诉后台人员后,后台人员直接把indusId改为了merId,我也没考虑那么多,组长说,这样改的话,那么线上的项目传递的还是indusId这个字段,后台不就会报错吗?我想,果然是这样,于是乎只能让后台多加一个merId,并且保留indusId字段,这样就不会使线上的项目产生问题了.
这让我想到了苹果的API设计,通常在iOS 8.0弃用了的API,在你使用的时候,只是会给你一个警告,并不会报错,这就是因为需要兼容低版本的应用,很多时候,新的API或者别的东西出来后,还需要保留原有的,这样就是保证了兼容性,包括在设计开源框架的时候.