依賴的環境隔離
由於不同的編程語言的包管理工具,存在對於依賴的 link 機制,所以對於它們的管理也稍有不同:
全局統一依賴型語言的環境隔離。對於諸如 Python、Ruby 這一類腳本型語言來說,它們使用的是全局依賴,所以需要依賴於諸如 virtualenv
或者是 rbenv
爲每個項目創造一個獨立的運行時依賴環境。
項目獨立的依賴隔離。對於使用 NPM 或者 Yarn 的前端開發人員來說,依賴存在於項目目錄下的 node_modules
,
自然而然地就進行了依賴隔離,但是需要對 Node.js 的版本進行限定。稍微一提,這種機制特別浪費硬盤。
包管理工具版本隔離。統一的依賴存儲路徑,但是卻不需要進行環境隔離,不過需要限定版本。
在引入依賴的時候,我們需要稍微注意一個對於依賴的版本選擇問題:到是寬鬆型,還是嚴格型。
依賴的版本問題,主要會出現在持續集成和新成員加入項目。
諸如於使用兼容發佈條款,如 ~= 0.6.4,對於那些早期已經搭建了的開發來說,並不會有問題。
而新的成員安裝的時候,可能就變成了 0.6.5,在 API 上可能會發現一些細微的變化 。
而諸如於使用 *
匹配版本的話,就更不嚴謹。
通常一個go中用到以下幾種依賴:
內部依賴: 位於項目文件夾內
本地依賴: 位於項目文件夾外, 在文件系統的其他位置中
網絡上的第三方依賴
go原生庫