Go 部落格

Go 十二年

Russ Cox,為 Go 團隊撰寫
2021 年 11 月 10 日

今天我們慶祝 Go 開源釋出十二週年。過去的一年充滿了精彩,明年也有許多值得期待的進展。

部落格上最顯而易見的變化是我們 在 go.dev 上的新家,這是我們將所有 Go 網站整合到一個連貫站點的部分內容。這項整合的另一部分是 用 pkg.go.dev 替換 godoc.org

二月,Go 1.16 釋出 增加了對 macOS ARM64 的支援,增加了 檔案系統介面嵌入式檔案,並 預設啟用模組,以及一如既往的改進和最佳化。

八月,Go 1.17 釋出 增加了對 Windows ARM64 的支援,使 TLS 密碼套件選擇更簡單、更安全,引入了 精簡的模組圖,使大型專案中的模組更高效,並增加了 新的、更易讀的構建約束語法。在底層,Go 1.17 還切換到 x86-64 上的 Go 函式的基於暫存器的呼叫約定,將 CPU 密集型應用的效能提高了 5-15%。

在這一年裡,我們釋出了 許多新的教程,一本 Go 資料庫指南,一本 開發模組指南,以及一份 Go 模組參考。其中一個亮點是新的教程“使用 Go 和 Gin 開發 RESTful API”,該教程也支援 使用 Google Cloud Shell 的互動式形式

我們在 IDE 方面也很忙碌,在 VS Code Go 中預設啟用 gopls,併為 gopls 和 VS Code Go 提供了無數改進,包括由 Delve 驅動的 強大的除錯體驗

我們還啟動了 Go 模糊測試 Beta 版,並 正式提出為 Go 新增泛型,這兩項功能預計都將在 Go 1.18 中推出。

繼續適應“虛擬優先”模式,Go 團隊在 Google 開源直播活動中舉辦了我們的第二屆年度 Go Day 活動。您可以在 YouTube 上觀看這些演講。

  • 在 Go 中使用泛型”,由 Ian Lance Taylor 主講,介紹了泛型以及如何有效地使用它們。

  • 現代企業應用”,由 Steve Francia 主講,展示了 Go 在企業現代化中的作用。

  • 使用 Go 編輯器構建更好的專案”,由 Suzy Mueller 主講,演示了 VS Code Go 的整合工具如何幫助您導航程式碼、除錯測試等。

  • 從概念驗證到生產”,由美國運通公司傑出工程師 Benjamin Cane 主講,解釋了美國運通公司如何將其支付和獎勵平臺遷移到 Go。

展望未來

我們對 Go 的第 13 年充滿期待。下個月,我們將在 GopherCon 2021 上有兩個演講,還有 來自 Go 社群的許多才華橫溢的演講者。免費註冊並標記您的日曆!

二月,Go 1.18 釋出將把新的基於暫存器的呼叫約定擴充套件到非 x86 架構,帶來顯著的效能提升。它將包含新的 Go 模糊測試支援。並且將是第一個支援泛型的版本。

泛型將是我們在 2022 年的重點之一。Go 1.18 中的初始版本只是一個開始。我們需要花時間使用泛型並學習哪些有效、哪些無效,以便我們能寫出最佳實踐並決定哪些內容應該新增到標準庫和其他庫中。我們預計 Go 1.19(預計在 2022 年 8 月釋出)及以後的版本將進一步完善泛型的設計和實現,並將它們更深入地整合到整體 Go 體驗中。

2022 年的另一個重點是供應鏈安全。多年來,我們一直在討論 依賴關係問題。Go 模組的設計提供了 可復現、可驗證、已確認的構建,但仍有更多工作要做。從 Go 1.18 開始,go 命令將在二進位制檔案中嵌入更多關於其構建配置的資訊,以便更容易實現可復現性,並幫助需要 生成 SBOM 的專案。我們還開始著手構建一個 Go 漏洞資料庫 和一個相關的工具來報告程式依賴項中的漏洞。我們在此項工作中的目標之一是顯著提高此類工具的訊號與噪聲比:如果一個程式不使用易受攻擊的函式,我們不想報告它。在 2022 年,我們計劃將此作為一個獨立工具提供,同時將其新增到現有工具中,包括 gopls 和 VS Code Go,以及 pkg.go.dev。還有更多工作要做以改善 Go 供應鏈安全狀況的其他方面。敬請關注詳情。

總的來說,我們預計 2022 年將是 Go 的精彩一年,我們將繼續提供您所期望的及時釋出和改進。

感謝!

Go 遠不止 Google 的 Go 團隊。感謝您的幫助,讓 Go 取得成功,並與我們一起踏上這段旅程。希望大家一切安好,祝您萬事如意。

下一篇文章: Go 1.18 Beta 1 已釋出,支援泛型
上一篇文章: pkg.go.dev 上的新搜尋體驗
部落格索引