Go 部落格

Go 的十二年

Go 團隊的 Russ Cox
2021 年 11 月 10 日

今天,我們慶祝 Go 開源版本發行的第十二個週年。今年我們經歷許多大事,明年也有很多值得期待的事。

部落格上最顯著的變化是我們 在 go.dev 上的新家,目的是將所有 Go 網站整合到一個單一、有條理的網站中。整合的另一個部分是 以 pkg.go.dev 取代 godoc.org

2 月時,Go 1.16 版本 新增加了 macOS ARM64 支援檔案系統介面內嵌檔案,而且 預設啟用模組,並包含一組例行的改良和最佳化。

8 月時,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 測試版模糊化 並且 正式建議在 Go 中加入泛型,這兩項都預計會出現在 Go 1.18 中。

為了持續適應「虛擬優先」的趨勢,Go 團隊舉辦了我們的第二屆年度 Google Open Source Live 的 Go 日。你可以在 YouTube 上觀看這些演講

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

  • 現代企業應用」,由 Steve Francia 主講,展示 Go 在企業現代化中扮演的角色。

  • 使用 Go 編輯器建立更好的專案」,由 Suzy Mueller 主講,展示 VS Code Go 的整合式工具如何協助你瀏覽程式碼、除錯測試等功能。

  • 從概念驗證到成品」,由 American Express 的傑出工程師 Benjamin Cane 主講,說明 American Express 如何將 Go 用於其付款和獎勵平台。

展望未來

我們對於 Go 的第 13 年所出現的景象感到非常興奮。下個月,我們將在 GopherCon 2021 中進行兩場演講,以及 許多來自 Go 社群才華洋溢的講者。免費註冊,並標記行事曆吧!

2 月份,Go 1.18 發行版本將把新的基於暫存器的呼叫慣例擴充到非 x86 架構,這將帶來顯著的效能提升。它會包含新的 Go 模糊測試支援。它將會是包含泛型支援的第一個發行版本。

泛型將會是我們 2022 年的重點之一。Go 1.18 中的初始發布僅是一個開始。我們需要花時間使用泛型並學習哪些方法有效、哪些方法無效,以便我們撰寫最佳實務,並決定應新增哪些內容到標準函式庫和其他函式庫。我們預期 Go 1.19(預計在 2022 年 8 月推出)以及後續的發行版本,將進一步改善泛型的設計和實作,並將其進一步整合到 Go 的整體體驗中。

2022 年的另一個重點是供應鏈安全。多年來我們一直討論著依存項的問題。Go 模組的設計提供了可重製、可驗證且經過驗證的建置,但仍有許多工作需要完成。從 Go 1.18 開始,go 命令將在二進位檔案中嵌入更多它們的建置組態資訊,目的是讓重現更容易,並協助有需要為 Go 二進位檔案產生 SBOM的專案。我們也開始進行一個Go 漏洞資料庫,以及一個關聯工具用於回報程式中依存項的漏洞。我們這項工作的其中一個目標是要顯著改善這類工具的訊號雜訊比:如果程式未使用有漏洞的函式,我們就不想回報這項漏洞。在 2022 年間,我們計畫將這個工具公開為一個獨立工具,但也將它加入現有的工具中,包括 gopls 和 VS Code Go,以及pkg.go.dev。還有許多事需要完成,才能改善 Go 供應鏈安全狀態的其他面向。請持續關注相關資訊。

整體來說,我們預期 2022 年將會是對 Go 來說意義重大的年份,而我們也會繼續提供您所期望的及時發行版本和改善。

謝謝您!

對我們 Google Go 團隊而言,Go 的意義遠遠不只如此。謝謝您的協助,讓 Go 獲得成功,並與我們一起踏上這場冒險。我們希望大家都平安健康,並祝大家一切順利。

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