開發和發佈模組
您可以將相關套件收集成模組,然後發布模組供其他開發人員使用。本主題概述模組的開發和發布。
若要支援模組的開發、發布和使用,請使用
- 工作流程,透過此工作流程您可以開發和發布模組,並隨著時間推移使用新版本進行修改。請參閱 開發和發布模組的工作流程。
- 設計實務,有助於模組的使用者了解模組並以穩定的方式升級到新版本。請參閱 設計和開發。
- 分散式系統,用於發布模組和擷取其程式碼。您可以從自己的儲存庫讓其他開發人員使用您的模組,並使用版本號碼發布。請參閱 分散式發布。
- 套件搜尋引擎和文件瀏覽器 (pkg.go.dev),開發人員可以在其中找到您的模組。請參閱 套件探索。
- 模組版本編號慣例,用於傳達穩定性和向後相容性的預期,讓開發人員使用您的模組。請參閱 版本控制。
- Go 工具,讓其他開發人員更容易管理相依關係,包括取得模組的來源、升級等。請參閱 管理相依關係。
另請參閱
- 如果您有興趣單純使用其他人開發的套件,這不是適合您的主題。請改為參閱 管理相依關係。
- 如需包含一些模組開發基礎知識的教學課程,請參閱 教學課程:建立 Go 模組。
開發和發布模組的工作流程
當您要發布模組供其他人使用時,請採用一些慣例,讓使用這些模組更為容易。
以下高級步驟在 模組發布和版本控制工作流程 中有更詳細的說明。
- 設計並編寫模組將包含的套件。
- 使用慣例將程式碼提交至您的儲存庫,以確保可透過 Go 工具供其他人使用。
- 發佈模組,讓開發人員可以發現它。
- 隨著時間推移,使用版本編號慣例修改模組,表示每個版本的穩定性和向下相容性。
設計與開發
如果模組中的函式和套件形成一個連貫的整體,開發人員將更容易找到並使用您的模組。在設計模組的公開 API 時,請嘗試保持其功能集中且離散。
此外,在設計和開發模組時考慮向下相容性,有助於其使用者升級,同時將其自己的程式碼變動降至最低。您可以在程式碼中使用特定技術,以避免發佈會破壞向下相容性的版本。有關這些技術的更多資訊,請參閱 Go 部落格上的保持模組相容性。
在發佈模組之前,您可以使用 replace 指令在本地檔案系統中參照它。這使得撰寫呼叫模組中函式的用戶端程式碼變得更容易,而模組仍處於開發階段。如需更多資訊,請參閱模組發佈和版本控管工作流程中的「針對未發佈模組編碼」。
分散式發佈
在 Go 中,您可以透過標記儲存庫中的程式碼來發佈您的模組,以供其他開發人員使用。您不需要將模組推送到集中式服務,因為 Go 工具可以直接從您的儲存庫(使用模組路徑,即省略架構的 URL)或代理伺服器下載您的模組。
在他們的程式碼中匯入您的套件後,開發人員使用 Go 工具(包括 go get
命令)下載您的模組程式碼以進行編譯。為了支援此模型,您遵循慣例和最佳實務,讓 Go 工具(代表其他開發人員)能夠從您的儲存庫中擷取您的模組來源。例如,Go 工具使用您指定的模組路徑,以及您用於標記模組以發佈的模組版本號,為其使用者找到並下載模組。
有關來源和發佈慣例及最佳實務的更多資訊,請參閱 管理模組來源。
有關發佈模組的分步說明,請參閱 發佈模組。
套件探索
在您發佈模組,且有人使用 Go 工具擷取後,它將會在 Go 套件探索網站 pkg.go.dev 上顯示。開發人員可以在該網站上搜尋以尋找並閱讀其文件。
若要開始使用模組,開發人員會從模組中匯入套件,然後執行 go get
指令,以下載其原始程式碼進行編譯。
有關開發人員如何尋找和使用模組的更多資訊,請參閱 管理相依性。
版本管理
隨著時間推移,在您修改和改善模組時,您會指定版本號碼(基於語意化版本管理模型),用於標示每個版本的穩定性和向下相容性。這有助於使用您模組的開發人員判斷模組是否穩定,以及升級是否可能包含行為的重大變更。您可以透過在儲存庫中標記模組來源,以數字標示模組的版本號碼。
有關開發主要版本更新的更多資訊,請參閱 開發主要版本更新。
有關如何使用語意化版本管理模型進行 Go 模組的更多資訊,請參閱 模組版本編號。