不知道使用 yaml 有什么好处

2018-11-24 14:58:20 +08:00
 gino86

纯吐槽,现在越来越多的配置文件使用 yaml 格式,不知道有什么好处(结构更清晰?)
例如,ubuntu 的网络配置方式到 1804 之后就推荐使用 netplan,netplan 的配置文件就是 yaml 格式
ansible 可用的配置文件方式有两种,一种是 ini,另一种是 yaml,个人认为 ini 格式更加简短,使用 yaml 又(结)长(构)又(清)臭(晰),但 playbook 只能使用 yaml。
另外,yaml 好像不支持 tab,曾经就因为这个原因出过错,使用 vim 编辑就需要 set expandtab

13936 次点击
所在节点    程序员
78 条回复
salamanderMH
2018-11-24 15:02:47 +08:00
YAML (YAML Ain't Markup Language) is a human-readable data serialization language
gino86
2018-11-24 15:05:28 +08:00
@salamanderMH 不觉得它可读性好在哪里
lihongjie0209
2018-11-24 15:08:15 +08:00
同感

人类可读性的话用 DSL

机器可读性的话用 JSON
zhangbohun
2018-11-24 15:09:04 +08:00
同感,很不直观
gino86
2018-11-24 15:11:40 +08:00
@lihongjie0209 就是。而且这种文件很容易写错
wly19960911
2018-11-24 15:12:19 +08:00
你不喜欢的就不够好吗,同理可以很多推论,我不喜欢 GO 语言,所以我认为 GO 不好,我不喜欢 python 的非 C 语法,所以我认为 python 不好。另外工具不会用,不会设置的错也归到语法上吗。

ini 那个格式,看样子只支持一层结构,数据结构变成树就没法处理了。
hsfzxjy
2018-11-24 15:13:05 +08:00
感觉 JSON 更易读
blankme
2018-11-24 15:13:12 +08:00
不仅可读性差,可写性也差(不支持 tab ),非常反人类。。。
ysc3839
2018-11-24 15:13:17 +08:00
相比 ini,yaml 解决了多行文本和数组的问题。
gino86
2018-11-24 15:14:29 +08:00
@wly19960911 反正编写这种文件的工作量更大,越是接触得多就越觉得没有优势
szq8014
2018-11-24 15:15:12 +08:00
这全是习惯而已吧,比如 java 里面包名一般都又臭又长,但是大家虽然吐槽但是还都遵守这样的规则,开发过程中如何在 navigate 中展示就有两种风格



上 hierarchy 下 flat,分别对应 java 两种常用的配置文件 properties 和 yaml 格式,喜欢哪种就用哪种



像 yaml 这样的需要配置复杂了才能展示其优点吧,配置项那么短的话好像没啥明显优势。
就像 python 包名那么短的话上面两种视图也没啥大的区别了。

INI 不怎么用,搭建 openstack 的时候用得比较多没觉得 ini 多先进呀 0.0
zhantss
2018-11-24 15:15:38 +08:00
yaml 存储数据的复杂度比 json 好,ini 就更低了
相对来说 yaml 的编写难度比 json 好一点,ini 当然最好写
主要是数据复杂度和人编写难度取一个平衡吧,playbook 复杂度需求还是挺高的
然后开发人员一般拍脑门决定配置文件,所以嘛。。。
gino86
2018-11-24 15:15:40 +08:00
@ysc3839 所以它不是为了可读性而生
Archeb
2018-11-24 15:16:38 +08:00
感觉 json 更好写...可能是因为我写多了
gino86
2018-11-24 15:17:01 +08:00
@szq8014 没说 ini 先进,只是在完成相同工作的前提下,ini 更加节省时间
YaphetYin
2018-11-24 15:19:13 +08:00
Toml 编写就很简单,rust 用的就是这个
wly19960911
2018-11-24 15:19:20 +08:00
@gino86 #10 如果是 JSON 和 YAML 比,我还是认为 JSON 更好,如果是 INI,我认为比不了。
CRVV
2018-11-24 15:26:15 +08:00
YAML 好像是一个比较早出现的这种格式,看起来本来是想做得比 JSON 好写
因为出现得早,大家都在用
但是显然缺点太多了,我也觉得还不如 JSON,所以现在更多用 TOML 了
kslr
2018-11-24 15:27:10 +08:00
yaml 对于人类阅读性比 json 好
weixiangzhe
2018-11-24 15:27:17 +08:00
那就用 toml 吧 yaml 比较 json 也有好多吧, 不用找哪里多了少了都号,那个花括号漏了,不用加那么多的引号 可以注释

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/511095

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX