2

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

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

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

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

编辑 一些可能的想法可能是:

  • 切换到使用数据库?这将是高度可配置的,但不是人类可读的。
  • 一些像Firefox的结构about:config
  • 一个巨大的平面 .ini 文件,只处理复制东西?不是一个选项,这会更麻烦
  • ...
4

3 回答 3

3

Lua was designed for configuration.

于 2011-02-21T21:16:23.767 回答
0

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

http://www.boost.org/doc/libs/1_45_0/doc/html/program_options.html 增强程序选项。

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

于 2011-02-21T20:51:33.160 回答
0

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

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

于 2012-01-04T11:38:41.980 回答