我不确定描述此问题的最佳方式 - 我已经完成了一些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