Go 部落格
十二年 Go
今天我們慶祝 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 模糊測試(fuzzing)beta 版本,並正式提議向 Go 中新增泛型,這兩者預計都將在 Go 1.18 中推出。
繼續適應“虛擬優先”,Go 團隊在 Google Open Source Live 主辦了我們第二屆年度 Go 日。您可以在 YouTube 上觀看講座。
-
Ian Lance Taylor 的“在 Go 中使用泛型”,介紹了泛型以及如何有效使用它們。
-
Steve Francia 的“現代企業應用”,展示了 Go 在企業現代化中的作用。
-
Suzy Mueller 的“使用 Go 編輯器構建更好的專案”,演示了 VS Code Go 整合工具如何幫助您導航程式碼、除錯測試等等。
-
American Express 的傑出工程師 Benjamin Cane 的“從概念驗證到生產”,解釋了 American Express 如何開始在其支付和獎勵平臺中使用 Go。
展望未來
我們對 Go 的第 13 年充滿期待。下個月,我們將在GopherCon 2021上有兩場講座,以及來自 Go 社群的許多才華橫溢的講者。免費註冊並標記您的日曆!
-
“為何以及如何使用 Go 泛型”,由負責這項新功能設計和實現的 Robert Griesemer 和 Ian Lance Taylor 主講。
12 月 8 日,上午 11:00(美國東部時間). -
“使用 Debug Adapter Protocol (DAP) 除錯 Go 程式碼”,由 Suzy Mueller 主講,展示如何使用 VS Code Go 的高階除錯功能和 Delve。
12 月 9 日,下午 3:20(美國東部時間).
二月,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 充滿事件的一年,我們將繼續按時釋出版本並提供您所期待的改進。
謝謝!
Go 遠不止是 Google Go 團隊的我們。感謝您幫助 Go 取得成功並加入我們這次冒險。我們希望大家都能保持安全,並祝願大家一切順利。
下一篇文章:Go 1.18 Beta 1 已釋出,包含泛型
上一篇文章:pkg.go.dev 上的新搜尋體驗
部落格索引