做产品,特别是在提公相应的api的产品,在升级版本的最基本的原则是在对以前版本的兼容.此兼容包括两方面,首先是针对所有的二次开发人员,要保证接口调用上对旧版本的兼容,第二是保证以前版本的输出及结果,在升级之后没有变换,也就是对最终用户感觉不到任何变化.用一个简单例子, 仅仅说明一个问题.
假设旧版本的产品中有一个有个方法 print
print(message){
//do something
}
实际应用过程中开发人员使用print(something)进行开发.但是为了提供友好的客户体验,产品研发部决定提控带有样式的输出结果,用户可以自定义样式,为了对以前版本代码的兼容性,产品提控了默认输出样式.
print(message){
style =customStyle;
if(!style){style=defaultStyle;}
//do something
}
现在来看,以前旧版本的代码照样运行.但是升级版本之后,用户提意见了怎么我看到的结果和以前不一样.经过检查结果发现以前的输出结果都是根据默认的样式输出的.但是没有任何样式可以达到以前一样的结果,除非没有样式.进行了以下修改,产品提控配置时都是用输出带有样式的输出结果,默认情况是不使用样式的.
print(message){
sytle=null
if(useStylle){
style =customStyle;
if(!style){
style=defaultStyle;
}
}
//do something
}
这里仅仅为了说明这个问题,对于其他方面不做深入的讨论.