Language agnostic 构建不以文件为中心的系统
我们有一个软件基础设施,它的工作原理很像一个软件构建系统:从不同的来源收集信息并用于生成一些输出。像在传统的软件构建中一样,我们有不同类型的输出、依赖树等 主要区别在于,我们的来源、中间结果和输出并非天生基于文件。相反,它们是(唯一可寻址的)数据对象 目前,我们正在结合传统构建系统(SCons)将数据结构映射到文件和目录,但这并不能扩展w.r.t.的性能,更重要的是,还不能扩展w.r.t.的可维护性。因此,我正在寻找一个基础设施,从一开始就是为了这个目的而建立的 例如,假设您有3个XML文档Language agnostic 构建不以文件为中心的系统,language-agnostic,automation,build-automation,Language Agnostic,Automation,Build Automation,我们有一个软件基础设施,它的工作原理很像一个软件构建系统:从不同的来源收集信息并用于生成一些输出。像在传统的软件构建中一样,我们有不同类型的输出、依赖树等 主要区别在于,我们的来源、中间结果和输出并非天生基于文件。相反,它们是(唯一可寻址的)数据对象 目前,我们正在结合传统构建系统(SCons)将数据结构映射到文件和目录,但这并不能扩展w.r.t.的性能,更重要的是,还不能扩展w.r.t.的可维护性。因此,我正在寻找一个基础设施,从一开始就是为了这个目的而建立的 例如,假设您有3个XML文档A、
A
、B
和C
。假设B/foo/bar
由A/x/y
和A/x/z
计算,同样地C/A/B
由A/x/y
计算。我需要一个基础设施
A
、B
和C
映射到一些文件A.xml
、B.xml
和C.xml
,并使用传统的构建系统,那么对A.xml
的任何更改都将触发B.xml
和C.xml
的重建,即使A/x/y
和A/x/z
(B的原始依赖项)未被修改。因此,对于细粒度的依赖项解析,我需要将a
、B
和C
中的每一个映射到一个目录,而不是一个文件,其中每个子目录表示一个元素,文件表示属性,等等。正如我所说的,这对我们来说并不适用
(请注意,我们的系统实际上并不基于XML)
现在,我正在寻找任何指向这一方向的现有软件、基础设施或概念,而不考虑实现语言和底层数据结构。因此,没有什么能准确解决您的问题,但有一些工具可能会让您比现在更接近: 1) 您可以使用Fuse将一些东西组合在一起,从而更好地控制数据对象映射到文件的方式。Fuse基本上允许您从所需的任何备份数据构建任意文件系统。(界面非常友好,但也有许多其他语言界面可用)。然后,您可以使用传统的构建工具,并利用与您的数据更好地关联的类似文件的对象
2) Cmake有一种非常可扩展的语言,用于编写定制目标,您可以将其压入服务中。不幸的是,它的语言很有说教性,学习曲线也很陡峭,所以它不是我的第一选择。所以我想不出什么能准确解决你的问题,但有一些工具可以让你比现在更接近: 1) 您可以使用Fuse将一些东西组合在一起,从而更好地控制数据对象映射到文件的方式。Fuse基本上允许您从所需的任何备份数据构建任意文件系统。(界面非常友好,但也有许多其他语言界面可用)。然后,您可以使用传统的构建工具,并利用与您的数据更好地关联的类似文件的对象
2) Cmake有一种非常可扩展的语言,用于编写定制目标,您可以将其压入服务中。不幸的是,它的语言很有教育性,学习曲线也很陡峭,所以它不是我的第一选择。听起来你需要一个主动对象数据库管理系统()之类的。ODBMS提供传统的持久性服务,而不需要将数据结构映射到文件的旧成本,也不需要对象技术的众所周知的好处。正如您提到的依赖树和可寻址对象,在ODBMS中,导航引用作为其数据的一部分存储,允许表示/访问对象之间的任何复杂交互模式。当您预测一个使用继承、对象嵌套和交叉引用的系统时,尤其如此 尽管对象引擎对于您的需求来说似乎太大了,但对于大型生产业务系统来说,在并发和多用户环境中使用OODBMs存储和执行方法是很常见的。它不是免费的,因为你必须投资于等式中的人的部分(教育和经验),但一旦最初的恐惧被克服,它将支付投资的回报 对于在进行更改(播音员通知)后重新生成(订阅)部件,您可以使用或其一个变体(或)来实现您的播音/订阅体系结构。正如您已经注意到的那样,在这种类型的事件框架下,存在着使用传统的基于文件的解决方案很难解决的固有问题。例如,依赖关系机制通常管理对象的替换,或者在您的示例中管理XML文档的替换。任何现代事件框架都应该在删除对象时进行管理,插入到旧对象的所有依赖项都将更新为新引用
最后,还有一个免费的包含对象依赖关系的框架,这样你就可以用一个真正的对象数据库进行实验。听起来你需要一个主动的对象数据库管理系统()之类的。ODBMS提供传统的持久性服务,而不需要将数据结构映射到文件的旧成本,也不需要对象技术的众所周知的好处。正如你提到的,德彭