不同配置格式的优缺点?

2024-03-14

我见过人们使用 *.cfg(Python Buildout)、*.xml(Gnome)、*.json(Chrome 扩展)、*.yaml(Google App Engine)、*.ini 甚至 *.py 作为应用程序配置文件(如姜戈)。

我的问题是:为什么有这么多不同的配置文件格式?我可以看到 xml 与 json 方法(更不那么冗长)或 Python 方法(有时你有一个 Python 应用程序,并且不想仅使用特定模块来解析配置文件)的优势,但是另一种呢?方法?

我知道还有比我举例说明的配置文件更多的格式。与彼此相比,它们的真正优势是什么?历史原因?不同系统的兼容性?

如果您要启动一个应用程序来读取某种配置文件(带有插件生态系统),您会使用哪一个?

我举的例子中哪些是最古老的?你知道它的历史吗?


这主要是个人喜好、目的和可用的库。我个人认为 xml 对于配置文件来说太冗长了,但它很流行并且有很棒的库。

.cfg、.ini 是运行良好的传统格式,许多语言都有一个包含的库可以读取它们。我在 Java、Python、C++ 中使用过它,没有任何问题。它实际上并不能作为数据交换格式,如果我传递数据,我可能会使用相同的格式进行配置和数据交换。

yaml和json位于xml和cfg/ini之间。您可以在两者中定义许多数据结构,也可以是像 cfg 一样的简单键值。这两种格式在 python 中都有很棒的库,我假设许多其他语言也有库。我相信 json 是 yaml 的子集。

我从未使用过 python 文件作为配置,但它似乎对于 django 来说效果很好。它确实允许您在配置中包含一些可能有用的代码。

上次我选择格式时选择了 yaml。它很简单,但有一些不错的功能,而且 python 库很容易安装,而且非常好。 Json 紧随其后,由于 yaml 库解析 json,我选择了 yaml 而不是它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不同配置格式的优缺点? 的相关文章

随机推荐