Go 语言开发团队技术 leader Russ Cox 在博客中庆祝 Go 开源 13 周年。2009 年 11 月 10 日,Go 作为开源项目正式宣布推出,目前已开源 13 周年。
对于 Go 来说,2022 是非常重要的一年,这一年 Go 发布了 Go 1.18 和 Go 1.19 版本,下面回顾一下今年 Go 发布的新功能:
Go 1.18 为语言本身带来了一项重大功能:泛型,其次还有 Go 工作区、模糊测试等重要功能。
- 泛型是社区呼声最大的特性,也是今年 Go 最重大的特性,它为 Go 添加了参数多态性,以允许编写适用于各种不同类型但仍在编译时进行静态检查的代码。要了解有关泛型的更多信息,请参阅教程“泛型入门”。
- Fuzzing (模糊测试),是一种自动化测试技术。它随机生成测试数据,来验证代码的功能是否可用。比如先定义一个可通过任何输入的 fuzz 测试,接着尝试不同的随机输入,尝试使该模糊测试失败。了解有关 fuzzing 的更多信息,请参阅教程“开始使用 fuzzing ”和 fuzzing 参考 。
- Go 工作空间功能,使同时处理多个模块变得容易,在维护一组具有模块依赖关系的相关模块时非常有用。要了解工作空间,请参阅 Beth Brown 的博客文章“熟悉工作空间”和工作空间参考。
与 Go 1.18 相比,Go 1.19 版本相对平静:它专注于完善和改进 Go 1.18 引入的功能,以及内部稳定性改进和优化,较为重要的:
- 在 Go 文档注释中增加了对链接、列表和标题的支持。
- 为垃圾收集器添加了软内存限制 ,这在容器工作负载中特别有用。
此外, Go 团队今年还发布了 VS Code Go 扩展,为 VS Code 编辑器的 Go 代码提供了丰富的语言支持。Gopls 语言服务器也得到了性能优化。
在安全方面,Go 有一个新的的漏洞数据库和一个新的 govulncheck 命令,让 Go 开发者能够了解可能影响其项目的已知漏洞。
在 Go 的第 14 个年头,Russ 表示团队将继续努力,使 Go 成为大规模软件工程的最佳环境。目前的计划是特别关注供应链安全、改进的兼容性和结构化日志记录,此外还会有其他改进,包括配置文件引导优化等。
延伸阅读:
- Go 1.18 正式发布了!支持泛型、性能优化...
- Go 1.19 正式发布
- Go 安全团队宣布新命令 govulncheck,用于检测漏洞