我们有一个软件基础设施,其工作方式与软件构建系统非常相似:信息从不同来源收集并用于生成一些输出。与传统的软件构建一样,我们有不同类型的输出、依赖树等。
主要区别在于我们的源、中间结果和输出不是天生基于文件的。相反,它们是(唯一可寻址的)数据对象。
现在,我们正在结合传统的构建系统 (SCons) 将我们的数据结构映射到文件和目录,但这并不能扩展,无论是性能还是(更重要的是)可维护性。因此,我正在寻找一种从头开始为此目的而构建的基础设施。
作为说明,假设您有 3 个 XML 文档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)
现在,我正在寻找任何指向这个方向的现有软件、基础设施或概念,无论实现语言和底层数据结构如何。