關注你所關注的 - Golang社群調研報告
Golang語言可以說現在炙手可熱,大家熟悉的Kubernates 就是使用Golang開發的。
我們在最近於倫敦和聖地亞哥舉行的GopherCon大會上調查了1000多名開發者,以更好地瞭解Go 開發社群和對Go Module的總體看法。隨著最近釋出的Go 1.13版本,現在是向社群分享一些有趣資料的好時機。
Go開發人員是高度投入的
絕大多數的Go開發者都在使用最新版本的GoLang。超過70%的受訪者表示使用的是最新版本的Go 1.12。
同樣值得注意的是,超過82%的Golang開發者使用的是1.11或更新的版本,因此能夠使用Go Module。只有一小部分報告使用了Go的早期版本。
Go Modules 的使用率很高
幾乎同樣多的使用最新版本的Go開發人員也報告在他們的組織中採用了Go Module。也有相當多的人希望儘快使用Go Module,這樣到2020年中期,其使用率將上升到至少80%,並可能接近100%。
GoLang被廣泛應用於各個行業
雖然Go開發應用於廣泛的計算領域,但DevOps僅排在Web開發之後,有近五分之一的報告稱他們使用Go來實現這些目的。系統、資料庫和網路應用程式的得分也很高,這表明在移動和嵌入式裝置等有前途的領域還有很大的增長空間。
選擇Go Module很難
當開發人員選擇開源元件時,他們傾向於追求安全性和質量。但在如何判斷 Go Module的風險方面,幾乎沒有共識。
大多數報告顯示人們偏好用他人使用最多的包,以及流行度所帶來的保證。同時安全漏洞也是一個問題,開發人員如何確定一個包的風險在各種各樣的條件下是不同的,如內網環境和外網環境同一個漏洞的處理可能是不一樣的。
如何更好更快的選擇Go Module
由於開發人員在選擇越來越多的Go模組時遇到了困難,GoCenter透過互動搜尋幫助使用者發現。一旦你有了結果,GoCenter會提供你需要的所有資訊來決定哪些模組最適合你的需求,包括活動和星級。我們也正在開發一個系統,根據選擇的標準來給模組打分,這將更好的幫助Golang開發人員更快的選擇到合適的模組。
GoCenter
我們感謝所有對我們GoLang調查做出回應的開發者。我們從中獲得的資訊將幫助我們幫助您,特別是在我們繼續使GoCenter成為幫助採用Go Module的有用工具的情況下。
如果您還沒有聽說過GoCenter,那麼它提供了不可變的、版本化的模組的中心源,這些模組直接從公共源儲存庫中的Go專案進行處理和驗證。在眾多好處中,使用GoCenter可以加快GoLang應用程式的構建時間。
GoCenter現在託管了超過260,000個版本化的Go Module,這些模組可以免費提供給Go開發者社群。
GoCenter與Golang 1.13的最佳實踐
1. 使用Gocenter 作為Goproxy
在Golang 1.13中,Go Module的支援在預設情況下是啟用的。儘管Go客戶端的新安裝會自動設定一個預設的google託管代理,在國內你可以覆蓋它並使用你選擇的Go Module代理,比如GoCenter。
要使用GoCenter作為版本化go模組的代理,請將GOPROXY環境變數設定為GoCenter URL:
Golang 1.13中的新特性允許您在GOPROXY中指定由逗號分隔的多個代理,以及直接從原始碼下載模組的Direct 模式(這種模式的場景是goproxy中沒有對應模組或版本是會返回404)。但是GoCenter目前支援了自動包含特性,意味著您在使用GoCenter進行代理時不需要使用這些Direct模式,當gocenter中目前沒有快取對用元件時,會自動觸發到原始碼庫中自動拉取對應元件以及版本。
2. 校驗和(checksum)資料庫支援
從Golang的1.13版開始,go get透過谷歌在sum.golang.org上維護的一個可審計的校驗和資料庫來執行模組的身份驗證。版本1.13會使用GOSUMDB環境變數中預設設定這個校驗和的DB URL。
GoCenter已經透過代理sum.golang.org幫助我們加速構建。如果你的GOPROXY設定為GoCenter,你不需要改變任何東西-你已經透過GoCenter驗證你的模組了!
3. 私有Go Module 倉庫
GoCenter用於代理透過公共源儲存庫(如Github)共享的Go Module。Golang 1.13還引入了一些環境變數,特別是GOPRIVATE,用於繞過代理和校驗和驗證,從私有儲存庫下載模組版本, 此場景比較適合企業內部有大量自研發Go Module。您可以在Golang文件中瞭解如何使用它們。
4. 版本驗證
在1.13版本中,為Go Module使用正確的字尾非常重要。go命令現在對請求的版本字串執行額外的驗證,如果模組不符合語義匯入版本控制,go get將失敗。因此,在Golang 1.13之前載入的模組的偽版本(pseudo version)可能會失敗。
總結
今天我們分享了我們在GopherCon大會上的Golang 調研結果,供大家參考,Go Module是目前比較受Golang 開發人員認可的一種依賴管理模式,當然其中還有很多問題,幸運的是,該社群現在非常活躍。
同時也介紹了部分1.13新特性以及最佳時間,推薦大家使用Gocenter 作為go 開發的 goproxy,加速本地構建,加速你的創新。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69954434/viewspace-2669644/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關注遠端工作,關注AP社群。
- Duxter:關注生活方式的遊戲社群UX遊戲
- 非Web開發者所關注的XML基礎WebXML
- 網際網路社群-關注價值
- 關注物聯網 關注公司產品
- 在自己的網站新增關注新浪關注按鈕網站
- 關注******技術
- 2019軟體工程師調查報告 這幾大要點值得關注軟體工程工程師
- 蝦皮粉絲關注及取消關注外掛 shopee
- AppDynamics:2021年應用關注度指數報告APP
- 記一次有意思的業務實現 → 單向關注是關注,雙向關注則成好友
- Forrester報告:CIO今年應該關注的12項技術趨勢REST
- [IOS]效能關注點iOS
- 關注innodb動態
- OpenCV 4.0正式釋出,你關注哪些特性?OpenCV
- 使用Redis實現關注關係Redis
- 思科:調研顯示郵件安全成為當下CISO關注的頭號難題
- 關注的翻譯計劃
- 關注中國IT產業的明天 (轉)產業
- 簡化你的關注與點贊 - Laravel Follow & VoteLaravel
- 分析:關於 「關注後使用者資訊獲取介面」調整的通知
- 2024年值得關注的6個工作場所趨勢
- 關注程式異常流
- Flex相關注冊碼Flex
- 小眾程式語言同樣值得你關注
- Android你不可不關注的那些公眾號Android
- 你應該關注的幾個Eclipse超酷外掛Eclipse
- 掘金上值得關注的 iOS 開發者iOS
- Struts 1.1的Indexed Properties 值得關注Index
- 技術架構的關注點架構
- 你值得關注的幾種常見的js設計模式JS設計模式
- [譯] 為什麼你需要關注一下 FlutterFlutter
- 批量關注掘金使用者
- mongoDB研究筆記:寫關注MongoDB筆記
- 程式猿在關注什麼?
- 多市工作報告關注未來5年發展,“網路安全”成高頻關鍵詞
- Twitter關注者與粉絲的關係網路
- Google:2013年中國旅遊國際網路關注度研究報告Go