组件升级,大多数程序员都觉得很简单,直接给个新的包,或新组件的地址,让大家都去下载不就可以了。但是实际这里面还是有很多学问,和需要考虑的地方的。
要考虑业务推广的难度,以业务方来看,不要没事改这改那,对业务没有什么帮助,相反到有所风险,而且还增加了工作量。
如何做组件升级需求,都是围绕着如何减轻业务顾虑来做的。
听说Facebook的最简单粗暴,谁升级组件,谁就负责把别人的代码改好。
要保证api尽量向前兼容
如果api有同样的功能,但是新版本变了,会让业务很难接受,因为本来已经写好的东西,又要重新修改。或者是为了使用一个新功能,但是让业务要重新改动和此不相干的大部分代码,这些都是不可取的。
代码要经过充分的测试
这是最基本的,特别是组件类的需求,是最底层的东西,要质量有保证。否则帮助推广升级方,还导致业务不稳定,以后再让人家升级就难了。
- 最好是做成服务,或者是分离式组件,能够无感知,业务代码一点不动就升级。
- 业务只需要重新编译,就能够提高性能,有新功能。
- 新功能调用新函数,或者加几个参数就能行。
- 新旧两个版本可以在一套代码中使用。
- 干掉就代码,只能一下子切割掉旧的用新的,没有前后对比。
总结
组件升级要考虑到业务方的更换成本, 业务最关心的是稳定性和工作量,要让他们消除这些顾虑,所以要做很多工作,而不只是把组件完成,升级的事情推给业务方。