領域驅動設計第三節-戰術設計(中)

依賴的環境隔離

由於不同的編程語言的包管理工具,存在對於依賴的 link 機制,所以對於它們的管理也稍有不同:

全局統一依賴型語言的環境隔離。對於諸如 Python、Ruby 這一類腳本型語言來說,它們使用的是全局依賴,所以需要依賴於諸如 virtualenv 或者是 rbenv 爲每個項目創造一個獨立的運行時依賴環境。

項目獨立的依賴隔離。對於使用 NPM 或者 Yarn 的前端開發人員來說,依賴存在於項目目錄下的 node_modules

自然而然地就進行了依賴隔離,但是需要對 Node.js 的版本進行限定。稍微一提,這種機制特別浪費硬盤。

包管理工具版本隔離。統一的依賴存儲路徑,但是卻不需要進行環境隔離,不過需要限定版本。

在引入依賴的時候,我們需要稍微注意一個對於依賴的版本選擇問題:到是寬鬆型,還是嚴格型。

依賴的版本問題,主要會出現在持續集成和新成員加入項目。

諸如於使用兼容發佈條款,如 ~= 0.6.4,對於那些早期已經搭建了的開發來說,並不會有問題。

而新的成員安裝的時候,可能就變成了 0.6.5,在 API 上可能會發現一些細微的變化 。

而諸如於使用 * 匹配版本的話,就更不嚴謹。

通常一個go中用到以下幾種依賴:

內部依賴: 位於項目文件夾內

本地依賴: 位於項目文件夾外, 在文件系統的其他位置中

網絡上的第三方依賴

go原生庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章