1
2
使用供应商分支来控制第三方依赖关系是 discussed in some depth 在颠覆书中。据我所知,基本优势是 保证 为所有开发人员提供稳定的API和统一的库,以及在同一版本系统中控制内部自定义修改的能力。 |
2
1
在我现在正在进行的项目中,我们有主代码(在一个Subversion项目中)和许多来自不同地方的分类库,它们都在各自的Subversion模块中。Visual Studio解决方案为每个项目维护单独的项目,并在最后将它们链接在一起。如果我们在Unix或类似的OSS上工作,我们会做同样的事情。 我看到的唯一缺点是,有时我会忘记更新其中一个更改更频繁的库,直到我注意到这一点,我的代码才会编译。如果我们在同一个模块中有库,那么我们就不会有这个问题。(我从来没有这样做过。灵活性的提高以及在不同的主要项目中使用不同的库的能力实在太大了。) 这里的API是一个红鲱鱼:要么它保持不变,要么它改变了,如果它改变了,我们就必须以任何方式更新主代码。源库和二进制库的问题也是如此(要么我们用主项目编译它们,要么我们不编译它们)。 |