當前位置:
首頁 > 知識 > Go 1.11 將支持的 Go module:解決包依賴管理問題

Go 1.11 將支持的 Go module:解決包依賴管理問題

Go 1.11 將支持的 Go module:解決包依賴管理問題

Go 1.11 預計將於2018年8月發布,最大的變化莫過於將為稱作"modules"的新概念添加實驗性支持。那麼這對 Go 開發者意味著什麼?

Go 語言從2007年誕生至今,已經發展和演化十多年了。這十多年來,Go 取得了巨大的成就,先後於2009年和2016年當選 TIOBE 年度最佳編程語言,並在全世界範圍內擁有數量龐大的擁躉。當然 Go 語言也不是完美的 —— 這些年來 Go 在「包依賴管理」和「缺少泛型」兩個方面就飽受詬病,它們也是 Go 開發者最希望 Go 核心開發團隊重點完善的兩個方面。

今年 2018 年初,Go 核心 Team 的技術領導人,也是 Go Team 最早期成員之一的 Russ Cox 在個人博客上連續發表了七篇文章 ,系統闡述了 Go team 解決「包依賴管理」的技術方案:vgo。vgo 的主要思路包括:Semantic Import Versioning、Minimal Version Selection 、引入 Go module 等。這七篇文章的發布引發了 Go 社區激烈的爭論,尤其是MVS(最小版本選擇)與目前主流的依賴版本選擇方法的相悖讓很多傳統 Go 包管理工具的維護者「不滿」,尤其是「准官方工具」:dep。vgo方案的提出也意味著dep項目的生命周期即將進入尾聲。

5月份,Russ Cox 的 Proposal 「cmd/go: add package version support to Go toolchain」 被 accepted,上周 Russ Cox 將 vgo 的代碼 merge 到 Go 主幹 ,並將這套機制正式命名為「go modules」。由於 vgo 項目本身就是一個實驗原型,merge 到主幹後, vgo 這個術語以及 vgo 項目的使命也就就此結束了 。後續 Go modules 機制將直接在 Go 主幹上繼續演化。

Go modules 剛剛 merge 到 Go trunk 中,問題還會有很多,不過這是 Go team 在解決包依賴管理方面的一次勇敢嘗試。無論如何,對 Go 語言來說都是一個好事。merge 後很多 gopher 也提出了諸多問題,可以在這裡查看。如果你也遇到了 go modules 方面的問題,可以在 Go 的 GitHub 倉庫中提 issue,幫助 Go team 儘快更好地完善 Go 1.11 的 Go modules 機制。

部分內容來自:https://www.colabug.com

OSC開源社區頭條號,每日推送最新優質的技術類文章,包括外文翻譯,軟體更新,技術博客等。歡迎關注osc開源社區頭條號,點擊「了解更多」閱讀原文章,獲取Go 的下載地址。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 OSC開源社區 的精彩文章:

TAG:OSC開源社區 |