我为什么选择yaml格式做配置文件

2018/07/20 others

最近要写个程序的自动生成脚本,需要用到配置文件。初期考虑使用json,再使用json的过程中,我遇到了一下问题:

  1. json不支持注释
  2. 过多的层级嵌套
  3. 过于严苛的格式

json不支持注释

在定义一个配置文件时,如果不能使用注解,我们总会被繁杂的信息所冲击的头晕脑胀。所以一个好的注释是很重要的,虽然json可以通过 “//”:的方式间接实现注释的功能。但是它降低了配置文件的可读性。

过多的层级嵌套

json中的数据都需要使用 [] 或 {} 进行包裹,这样看起来的层级非常多,而且很不利于控制。当配置文件结构较为庞大复杂是,你会被手写json文件逼疯的。。

过于严苛的格式

json对于文本格式的要求过于严苛,手写时很可能少了 引号 逗号等符号导致问题。

综上考虑到配置文件的需求,觉得一个良好的配置文件格式最起码应该具有以下功能:

  1. 支持注释
  2. 良好的层级结构
  3. 格式要一定的松散,不能太严苛
  4. 书写方便

最终我选择了使用yaml格式作为文件的配置格式,yaml支持注释,不必强求逗号括号等符号,通过缩进来区分层级,视觉上清晰很多,yaml还可以作为json的超级,可以在其中使用json格式的内容, yaml的一个配置样式大概如下所示:

test:
  name: test
  code: 1
  subs:
     sub_name: subname
     sub_code: 2
     enum: {a: 1, b: 2}

欢迎关注我的微信公众号

璐豪笔记

CoderHouse

Search

    Post Directory