我们正在编写一个 C++ 程序,该程序需要高度可配置(在启动时)。现在我们有一个基本的 XML 文件,其中包含几个配置变量,以及具有更多配置变量的其他 XML 文件的文件名。总而言之,我们有一个包含大约 10 个 XML 文件的树,以及一些包含其他内容的二进制文件格式。
我们现在正处于变得非常混乱的地步:由于文件是相互关联的,因此很难找到实际解析了哪些文件以及需要编辑哪些配置或要设置哪些路径。
除了互连的 XML 文件之外,还有没有更好的方法来实现复杂软件的配置?
我不想放弃这种方法的一个优点是,从配置的一部分切换到另一部分相对容易。例如,我们有两个用于两个不同机器人的配置文件,要在我们使用的机器人之间切换,我们只需从基本 XML 文件链接正确的文件。
编辑 一些可能的想法可能是:
- 切换到使用数据库?这将是高度可配置的,但不是人类可读的。
- 一些像Firefox的结构
about:config
? - 一个巨大的平面 .ini 文件,只处理复制东西?不是一个选项,这会更麻烦
- ...