1
我在閱讀「如何寫代碼」教程,我不禁想知道如何建立一個穩定的工作流程。 Git說,當然,我的代碼會處於源代碼控制之下。現在我想要能夠做到以下幾點:重複發佈與去依賴包
- 構建我的項目的可執行文件 - 並確保對於給定的Git版本,可執行文件將構建相同。
- 爲我的項目運行連續構建以在每次提交時激活。我需要確定,無論連續構建在我的工作站上都可以重現。
- 創建我的項目的版本。我需要知道,如果我從我的代碼的同一個git版本再次執行,可以重新創建發行版。
Go爲它提供了「go get」工具 - 但這裏是我感到困惑的地方。應該支持這個的工具,「去獲取」,設置依賴包的源代碼控制回購。這給我以下問題:
- 我不能把依賴包放在我自己的源代碼管理下。這意味着如果我和我的合作者,或者我和我的持續構建系統之間有任何環境差異,我們將很難找出這些差異。
- 如果網絡關閉,我將無法從頭開始構建我的代碼。或者,換一種說法,我的持續構建系統在每次構建發行版時都必須打開所有這些外部服務器。這可能是脆弱的,甚至不是我願意讓外界知道的東西。
- Go定義了一個將包的版本與基本語言的包進行同步的約定,但不能保證包作者會遵循該約定。如果他們不這樣做,一個乾淨的工作空間將會選擇一個可能被破壞的任意釋放。
- 如果我依賴的項目被放棄,我可能會失去構建程序的能力。
我可以通過手動導入依賴項目的代碼並且根本不使用「go get」來解決這些問題 - 但是,我避免使用專門爲該用途設計和推廣的語言的工具。
有什麼建議嗎?我錯過了什麼嗎?