Go语言精进之路:从新手到高手的编程思想、方法和技巧(1)
上QQ阅读APP看书,第一时间看更新

2.3 Go语言的版本选择建议

如今,Go团队已经将版本发布节奏稳定在每年发布两次大版本上,一般是在2月和8月。Go团队承诺对最新的两个Go稳定大版本提供支持,比如目前最新版本是Go 1.16,那么Go团队会为Go 1.16和Go 1.15版本提供支持。如果Go 1.17版本发布,那么支持的版本将变成Go 1.17和Go 1.16。支持的范围主要包括修复版本中存在的重大问题、文档变更及安全问题更新等。

Go开发团队发布的Go语言稳定版本的平均质量一直是很高的,少有影响使用的重大bug。Go开发团队一直建议大家使用最新的发布版。Google的自有产品,比如Google App Engine(以下简称为GAE),也向来是这方面的“急先锋”——一般在Go新版本发布不久后,GAE便会宣布支持最新版本的Go。

开源社区对Go版本的选择策略并不相同。有的开源项目采纳了Go团队的建议,在Go最新版本发布不久就将当前项目的Go编译器版本升级到最新版,比如Kubernetes项目;而有的开源项目(如Docker项目)则比较谨慎,在Go开发团队发布Go 1.16版本之后,这些项目可能还在使用两个发布周期之前的版本(如Go 1.14);而多数项目处于两者之间,即使用最新版本之前的那个版本。比如:当前最新版本为Go 1.16,那么这些项目会使用Go 1.15版本的最新补丁版本(Go 1.15.x),直到发布Go 1.17,这些项目才会切换到Go 1.16的最新补丁版本(Go 1.16.x)。 如果你不是那么“激进”,可以采用最后这种版本选择策略。

小结

在这一条中,我们简单回顾了Go语言自诞生至今所有重大版本的功能特性和版本意义。了解Go版本的演进情况以及不同版本的功能特性变动点,有助于我们在学习中或在项目开发中选择最适合自己的Go版本。此外,我们还了解了Go社区在Go版本选择和升级方面的几种策略,大家可以根据实际情况选择最适合自己的策略。


[1]https://www.cs.cmu.edu/~crary/819-f09/Hoare78.pdf