不知道使用 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

13968 次点击
所在节点    程序员
78 条回复
WispZhan
2018-11-24 22:10:04 +08:00
@lihongjie0209 不考虑嵌入式设备?

机器可读自然是考虑嵌入式系统可读,底层 C/Cpp 自然是更倾向二进制协议,自然有机器可读一说。

这世界上还是嵌入式设备多得多,自然考虑机器可读。

你们现在考虑的全是上位机,应用层。多考虑下其他场景
WispZhan
2018-11-24 22:18:02 +08:00
JSON 根本就不是作配置文件的料,楼上一堆说 JSON 配置的……连个注释都不是原生兼容的格式不配当配置。

用 JSON 配置的一般都是 js 系的,其他的语言用真的不讨好。
---

要吐槽 yaml 又想用 ini,那就看 toml 啰。

---

最无聊的就是一群吐槽 xxx 不合理的,存在即使合理。别人有别人用的理由,你不爽就自己造轮子。

---

还有楼主说的不兼容 tab ……你把 tab(/t)换 indent 好不,要挑起圣战么?
beginor
2018-11-24 22:18:15 +08:00
@azh7138m \n 还是只能写在一行内,你能写多行文本么?
zhouzm
2018-11-24 22:42:43 +08:00
我个人主力编辑器是 vim,觉得 yaml 非常适合手写,并且有很好的可读性。

前面提到的 yaml 的问题主要集中在缩进,认为这样反面没有可读性。

1. 现在 2 格缩进已经趋向于主流,在这种情况下,多层级缩进对文本的可视影响不是很大。
2. terminal 环境下,vim 是主要的编辑器,vim 使用缩进对齐插件(例如 Yggdroot/indentLine),可以非常直观的看清楚数据的层级关系。
3. vim 可以很方便的进行块缩进操作,这样如果需要进行块节点转移是极其方便的,相比之下,json 格式要做类似操作则很繁琐。

以前我们的菜单是使用 json 格式保存,菜单项由于客户的要求,经常会进行重构,菜单项,菜单组经常会移来移去,手工编辑这个 json 非常痛苦,后来改成 yaml 格式后,再也没有这个烦恼,任他风雨来袭,我自岿然不动。
参见示例图,图中只显示了 2 级菜单,实际运行中会出现 3 级、4 级:

https://i.loli.net/2018/11/24/5bf95fb13cbda.png

注意仔细看,yaml 格式并不是你们所想像的全是缩进哦。
wspsxing
2018-11-24 23:03:17 +08:00
ini, json, yaml, toml 都用过,
ini 太原始,
json 没有注释,ps,最后一个逗号好烦。
yaml, 我因为缩进远离了 python,
toml, 语法怪怪的, 可以写的 天外飞仙
还有一些乱七八糟的格式就不说了

最后感觉 json5 不错 , 支持注释, (数组,对象)最后一个逗号可选。。
feverzsj
2018-11-24 23:24:55 +08:00
因为对人而言方便,但是解析起来比 json 要复杂
janxin
2018-11-24 23:33:14 +08:00
toml>yaml>>>json

yaml 的好处是厉害久宣传的多库也全,又不像 json 这么可读性差。相对来说 toml 就是年轻了点
zkeeper
2018-11-25 04:39:21 +08:00
我觉得吧, 如果 json 能出个扩展, 支持注释, 就十分完美了.
yaml 的问题是格式太容易出错, 不如 json 这么健壮, 毕竟空格缩进都是不可见的
killerv
2018-11-25 06:30:10 +08:00
感觉 ini 可读性没有那么好,没有层级概念
MonoLogueChi
2018-11-25 07:51:40 +08:00
@gino86 单层级的话,yaml 和 INI 基本上是一样的啊,你说更省时间是从哪里得到的结论啊
itskingname
2018-11-25 07:56:01 +08:00
@zkeeper json5
yurun
2018-11-25 08:47:40 +08:00
真的不喜欢 yaml
mattx
2018-11-25 12:13:49 +08:00
可视化方面, xml 感觉不错.
BOYPT
2018-11-25 13:59:52 +08:00
@0987363 #37 那是你 vim 使用不熟悉
:paste 命令了解一下
0987363
2018-11-25 15:20:54 +08:00
@BOYPT 我说的是格式化后一坨屎。。并不只是复制粘贴的时候才格式化。。。
AX5N
2018-11-25 15:36:54 +08:00
yaml > ini > json
linxu
2018-11-26 19:56:41 +08:00
@wly19960911 段之间可以继承
szq8014
2018-12-05 09:06:13 +08:00
@shayang888 windows 个性化里面把颜色改了就行啊,这个颜色来自于一张壁纸

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

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

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

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

© 2021 V2EX