非常复杂的软件的Sane配置方法?

时间:2011-02-21 20:47:41

标签: c++ xml configuration-files configuration-management

我们正在编写一个C ++程序,需要高度可配置(在开始时)。 现在我们有一个基本XML文件,其中包含几个配置变量,以及包含更多配置变量的其他XML文件的文件名。总而言之,我们有一个包含大约10个XML文件的树,以及一些带有其他内容的二进制文件格式。

我们现在处于一个非常混乱的地步:由于文件是相互关联的,因此很难找到实际解析的文件以及需要编辑的配置或要设置的路径。

除了相互关联的XML文件之外,还有更好的方法来实现复杂软件的配置吗?

我讨厌放弃这种方法的一个优点是,从配置的一部分切换到另一部分相对容易。例如,我们有两个不同机器人的配置文件,要在我们使用的机器人之间切换,我们只需链接基础XML文件中的正确文件。

修改的 一些可能的想法可能是:

  • 切换到使用数据库?这将是高度可配置的,但不是人类可读的。
  • 某些结构如firefox的about:config
  • 一个巨大的平面.ini文件,只处理复制的东西?
  • ,这不是一个选择,这将更加繁琐
  • ...

3 个答案:

答案 0 :(得分:3)

Lua专为配置而设计。

答案 1 :(得分:0)

如果您使用的是C ++,则可以使用

http://www.boost.org/doc/libs/1_45_0/doc/html/program_options.html 提升计划选择。

它允许您将配置存储在文件中并交替使用命令行参数。

答案 2 :(得分:0)

我主要来自Java和.NET世界,但可以完全理解拥有如此多配置文件,不同环境和共享配置参数所涉及的痛苦。作为以前公司的一个解决方案,我们开始构建一些东西,它通过允许配置继承,模板化和强类型配置值以及配置的审计和访问控制来帮助我们。

我们即将发布我们的解决方案作为托管配置管理服务。如果您有兴趣,请在http://woot.configchief.com

注册测试版