我不確定描述此問題的最佳方式 - 我已經完成了一些Google搜索,但可用。Github解決方案文件的依賴關係
我現在有具有以下解決方案:
Repository 1 ProductProject1 ProductProject2 ProductProject3 SharedCodeProject1 SharedCodeProject2
我現在有是,如果任何開發人員都希望在ProductProject1工作,他們必須克隆整個庫這使他們ProductProject1的問題, 2和3.
這一直很好,直到最近,現在我正在招聘更多的開發人員,我真的希望他們只專注於3個產品項目之一,並專注於此。
我很好奇別人怎麼處理這種情況?只需讓開發人員像我一樣克隆整個存儲庫?
我提出的解決辦法是......
可能的解決方案1
設置獨立的知識庫像這樣:
Repository1 ProductProject1 SharedCodeProject1 SharedCodeProject2
Repository2 ProductProject2 SharedCodeProject1 SharedCodeProject2
Repository3 ProductProject3 SharedCodeProject1 SharedCodeProject2
臨:的代碼精簡,只公開了開發的ProductProject他們負責
缺點:經過思考之後,我意識到,SharedCodeProject1
和SharedCodeProject2
將基本上都混合在每個存儲庫版本,實際上他們應該也可以保持一致。
可能的解決方案2
設置個別儲存庫爲這樣:
Repository1 ProductProject1
Repository2 ProductProject2
Repository3 ProductProject3
Repository4 SharedCodeProject1 SharedCodeProject2
優點:老實說,我甚至不確定這個結構是否可能,因爲在存儲庫1 - 3中會有大量的破壞引用(除非有一些我不知道的魔法設置) - 然而,理論上來說,SharedCodeProject1和2是集中式的,所以任何更新所有開發者的開發者都會收到並且可以重用這些更新(具體到數據庫層,這是共享代碼項目和其他共享代碼項目中的業務邏輯之一)
缺點:(這是否有道理)
實施不會真正實現跨越所有存儲庫,直到同步重大更改我正在努力弄清楚完成這項工作的最佳方法。我希望這是有道理的,請讓我知道,如果我能澄清。
我只是好奇其他公司如何在github上構建這樣的大型解決方案,同時試圖限制只能訪問開發者到特定項目。
非常感謝!
我唯一擔心的問題是共享代碼幾乎每天都會被上述項目修改。似乎要分開管理整個流程會非常麻煩。 – 99823
這聽起來像是你需要掌握的東西。你有一個被認爲是反模式的緊密耦合問題。你應該促進鬆耦合... –
我不知道該怎麼做......我們有一個針對我們數據庫的項目和一個針對我們服務的項目,這兩個項目在我們的產品中重複使用。對於從事產品工作的人來說,爲服務項目添加該產品的服務功能非常普遍。通常還有其他的事情嗎?我認爲這將被認爲是最佳做法。 – 99823