我目前正在开发一个C++产品。它被设计成具有相当大的灵活性,并且已经变得越来越大。现在我们计划合作一个项目,我们愿意贡献部分产品:有些部分是源代码,有些部分是静态链接库,有些部分根本不是。
我希望保留两个项目中使用的每个源文件的一个版本,并避免对整个文件进行分支等。因此,我想知道我需要什么才能在内部拥有包含所有文件的“完整产品”,并能够提取这些文件的一部分(时不时地)并将此子集作为工作单元传递给其他人。(我假设我们可以确保这些文件在合作项目中不被更改,我们只会在那里添加东西。)
我想我需要
- 一种松散耦合的软件架构,这样可以在不破坏系统的情况下删除部分。我认为“静态”插件这个术语在这里很合适,因为我认为我可以从插件系统中学习,但我不需要有动态加载它们的能力,它们可以以静态的方式链接/构建。我希望这能迫使我和我的合作伙伴工人们通过添加某种插件来扩展系统,而不是到处插入类,从而引入事物之间的耦合。
- 一个构建系统,它支持我选择要构建的插件,并通过只提取我需要的插件来“释放”新的子集。
有什么网络资源可以帮助你吗?你需要搜索的关键词是什么?
你对如何处理这件事有什么建议吗?
2条答案
按热度按时间tpgth1q71#
Dobbs博士有一个有趣的文章系列,你可能想看看。我似乎记得,除了通常的动态链接外,它还支持插件的静态链接。看看Building Your Own Plugin Framework。
祝你好运!
chhkpiq42#
首先,你需要像git这样的东西:
https://git-scm.com/
要管理“插件”,不管是静态的还是非静态的,看看已经这样做的现有系统可能是值得的:我可以建议您研究一下Python是如何做到这一点的(因为有一个很好地指定的C API来管理它)。
我所知道的最好的构建系统是.. Python. Forget makes:)一个预构建的系统是Erick Tryzelaars fbuild(可从github获得).[我认为它是最好的,因为我正在使用它:]