获得徽章 0
前端 @某公司
赞了这篇沸点
React v16.7发布了,可是没有预期的Hooks正式发布,只是包含一些bugfix。没有就没有吧,这次没有等下次,不过,我们依然从React的声明中看到一些很有启发性的观点。

我们知道,根据语义化版本(semantic versioning)的规则,版本分为major、minor和patch部分,假设目前React版本是v16.6.0,现在有了一些代码改变要发布,如果有breaking change,那就应该改变major,也就是v17.0.0;如果只是增加新的功能,那就改变minor,也就是v16.7.0;如果只是fix bug,不改变原有行为,那就只需要改变patch,也就是发布v16.6.1。

既然这次只是bugfix,为什么React要发布v16.7.0,而不只是发布v16.6.1呢?

因为React认为只有很小的代码改变才能当做patch发布,如果一个改变虽然只是fix bug,但是牵涉的代码改变很多,依然应该当做minor版本发布。

可以说,React的这种观点非常地正!

这世界上有很多项目的package.json里类似这么写的"react": "~16.6.0",这代表了对一个小版本的信任,因为这会匹配所有16.6.x版本,所以,一定要确保patch非常非常非常非常非常靠谱,绝对不要引入新的bug。即使我们的代码有100%的代码覆盖率,即使我们有严格的代码审核流程,即使我们在发布之前做足dogfooding,依然不能完全杜绝bug,因为每一行代码的改变都可能引入bug,如果代码改变太多,我们就不应该冒险当做一个patch发布,一旦有意外bug引入,这会毁了很多项目的。

React的确有一个很严谨的开发团队,值得我们学习。
展开
评论
个人成就
优秀创作者
文章被点赞 625
文章被阅读 51,005
掘力值 1,776
收藏集
0
关注标签
34
加入于