2014-10-06 45 views
20

確切地說是什麼? (你會如何定義它?)什麼是「vendoring」?

這是否意味着在不同的編程語言中同樣的事情?從概念上講,沒有看到確切的實施。

+1

什麼是* vendoring *,甚至約?不是我曾經遇到的一個術語。現在,我無法將我的* vendor *這個詞的知識應用於編程語言領域,並以* -ing *分詞作爲動詞。 – 2014-10-06 13:42:34

+0

我發現它在Python,PHP和Ruby世界中使用。但這不是一個非常着名的概念。這就是爲什麼我問這個問題:-) – 2014-10-06 13:47:35

+1

事實上,我沒有看到它使用了這麼多也有助於我對概念的不完全理解。 – 2014-10-06 14:46:07

回答

5

如果您的應用程序依賴於某些第三方代碼可用,您可以聲明一個依賴項並讓您的構建系統爲您安裝依賴項。

但是,如果第三方代碼的來源不是很穩定,那麼您可以「供應商」該代碼。你拿第三方代碼並以一種或多或少的獨立方式將它添加到你的應用程序中。如果你認真對待這種隔離,你應該將這個代碼「內部釋放」到你的組織/工作環境中。

出售的另一個原因是如果你想使用某些第三方代碼,但你想改變它一點點(換句話說叉)。你可以複製代碼,修改它,在內部釋放它,然後讓你的編譯系統安裝這段代碼。

+2

我已經閱讀了幾次,現在還不確定我明白* vendoring *可能是什麼。當然,它必須不僅僅是建立對別人代碼的分支的依賴關係,或者不管它是什麼,它都不會有一個陌生的新詞。但是,請不要在我的賬戶上重寫您的定義,我已經知道足夠多的話,並且懷疑我不需要了解* vendoring *的含義,如果有的話。 – 2014-10-06 13:56:42

+1

我認爲「在別人的代碼的分支上建立依賴關係」與我所說的非常接近,所以非常感謝。不過,我覺得它有點不止於此,它還「爲特定用途」構建/發佈自己版本的別人代碼「。 – 2014-10-06 14:45:23

+4

我想補充一下我對這個詞的詞源的理解:在這種情況下,'vendor'是軟件的創建者(可能是你,因爲我們在Stack Overflow上);並且您正在發佈「供應商」選擇版本的依賴項(而不是用戶選擇的或更可能的用戶系統選定版本)。據我所知,這個術語已經有很長的一段時間了。 – ELLIOTTCABLE 2016-01-26 20:37:44

10

基於this answer

定義爲here圍棋爲:

Vendoring是使自己的第三方軟件包 項目所使用的複製行爲。這些副本傳統上每個項目都放在 之內,然後保存在項目存儲庫中。

此答案的上下文是Go語言,但該概念仍適用。

+1

值得補充的是,vendoring與使用依賴管理器相反 – konstin 2018-01-20 22:43:30

相關問題