在考 ansible. playbook 流程控制理解起来没啥问题. 这种缩进语法真的是... 给我整自闭了.
1
xiaoz 2022-12-21 23:48:22 +08:00 via Android
稍有不慎就报错,哈哈。我也觉得这种写法不太友好。尤其是复制粘贴的时候。
|
2
dcsuibian 2022-12-21 23:50:39 +08:00
你用的啥编辑器
|
4
dzdh 2022-12-21 23:55:57 +08:00
为啥 yaml 这么受推崇呢
|
6
sdk234 2022-12-22 00:05:12 +08:00 via Android
习惯问题。我特别喜欢这种缩进语法,看着很舒服。😂
|
8
Track13 2022-12-22 00:10:05 +08:00 via Android
想起以前用 hexo 搭博客,因为 yaml 的缩进,一个问题卡一天。😢
|
9
also24 2022-12-22 00:12:59 +08:00 via Android 1
很多人好像都没有意识到 yaml 是可以用括号的…
|
10
majula 2022-12-22 00:42:31 +08:00 1
众所周知 yaml 是 json 的超集
不习惯的话写 json 就好了( |
11
dcsuibian 2022-12-22 00:55:12 +08:00
xml-->json-->yaml 。我觉得 yaml 挺好的。
XML 应该算老前辈了,配合 dtd 和 ide 写起来也很舒服。但总体来说确实复杂,文件庞大。 JSON 相比于 xml 精简了很多,而且其中的几种类型:数字、布尔、字符串、null 、对象(键值对)、数组(列表)。这些类型在其它语言里有对应。 但做配置不合适,因为 json 更多是为数据交换考虑的,语法严格(比如必须双引号、不能有多余的逗号),不允许有注释。这对解析器友好,但对手写的配置文件就不一样了。 yaml 的话,算是 JSON 的超集,我基本那它当一个更好写的 JSON 。JSON 的数据类型它都有,但写起来更方便舒服。 另外.properties 、.ini 就不说了,觉得不怎么样。 |
12
paradox8599 2022-12-22 01:09:10 +08:00 via Android 2
有人用 toml 的吗?感觉也还不错
|
13
enchilada2020 2022-12-22 01:15:05 +08:00 via Android 1
@paradox8599 感觉还不如 yaml 。。
|
14
singerll 2022-12-22 07:54:12 +08:00 via Android
想在服务器上临时改个参数,经常 vim 敲完报错,还得切 vsc 之类的编辑器。。。
|
15
lucifer9 2022-12-22 08:07:53 +08:00 via iPhone 1
说的就跟真手写配置文件似的
还不是都复制一下改改 想想看是多删了一个括号好查出来 还是多删了个空格好查出来? |
16
chih758 2022-12-22 08:18:05 +08:00 via Android
你可以用 jsonnet 写😉
|
17
wangxiaoaer 2022-12-22 08:40:08 +08:00 3
你说这些配置文件,一届一届换了多少种格式了,改过吗?换汤不换药啊!
你 spring 、hexo 都在用 yaml 了,能用,但是快不了!出个缩进问题就卡半天,没这个能力知道吗? 再下去就要换 toml ,再不行就换魔改 dsl ,接下来没啥可换的啦。 Json 用的蛮好的,你把他换了干什么? |
18
IvanLi127 2022-12-22 08:51:30 +08:00 via Android
数据结构不复杂的话,用 yaml 比 json 好太多了。复杂的话缩进是有点乱,不过 json 也一样吧。。。少写个花括号不也是很要命。我反正很喜欢 yaml ,不过写配置的话,我更喜欢 toml
|
19
isnullstring 2022-12-22 08:59:05 +08:00
看着头大,ini 直观些,哈哈哈
|
20
root01 2022-12-22 08:59:46 +08:00
json 更恶心
|
21
ysn2233 2022-12-22 09:11:31 +08:00
我感觉 yaml 还行啊,json 要写一大堆引号感觉更烦
|
22
infun 2022-12-22 09:28:07 +08:00 1
大家都来用 toml 吧
|
24
weixiangzhe 2022-12-22 10:09:42 +08:00
老派就是回到 json5, 新派就用 toml 吧
|
25
whileFalse 2022-12-22 10:15:27 +08:00 via iPhone
@wangxiaoaer 你可以在 yaml 里写 json 。不行就弄个小程序一键转吧
汇编用的蛮好的,为什么你非要换用高级语言呢。 |
26
perfectlife 2022-12-22 10:19:33 +08:00 via Android
用 k8s 后 yaml 就写习惯了
|
27
mxT52CRuqR6o5 2022-12-22 10:48:23 +08:00 via Android
你可能需要一个游标卡尺
|
28
Konys 2022-12-22 10:52:48 +08:00
yml 可以了, 比 xml 和 properties 文件强太多了
|
29
ysc3839 2022-12-22 10:57:55 +08:00
@dzdh 个人猜测是出现得早,支持 merge keys 等比较实用的功能,以及强制格式可以大大增加可读性,且对专业用户来说并不会带来太多不便。比如用 Python 和其他不强制缩进语言对比,一些不注重代码格式的人写其他语言往往比较乱,而 Python 则乱得没那么厉害。
|
30
itskingname 2022-12-22 11:17:41 +08:00
我觉得有这种感受的人,都是 Yaml 格式自己写得不规范。类似的还有觉得写 Python 代码要用游标卡尺。
正常情况下,Python 代码的嵌套缩进不会超过 3 层,超过了一定是代码本身有问题,是可以通过改进代码来减少缩进的。同理,Yaml 也是一样,你缩进十几层那肯定是因为写得不规范。 Yaml 是有类似变量的这种机制的,当你不得不深层嵌套的时候,是可以在顶层赋值给一个变量,然后在别处直接通过变量来引用,这样就可以避免深层缩进嵌套的问题。 |
31
securityCoding 2022-12-22 11:20:32 +08:00
yaml 挺好一目了然,ini json 写个配置能把人写吐了,尤其是 json
|
32
ospider 2022-12-22 11:38:35 +08:00
Python 用缩进基本可以接受,代码复制来复制去的场景是不多见的。但是 yaml 这种配置用缩进真的是无语,配置文件还是经常需要复制的。连 Python 现在都用 pyproject.toml ,而不是 yaml 了。
|
33
adoal 2022-12-22 11:38:36 +08:00
缩进的语言那么多,只有 Python 和 YAML 这样用得广泛的才配被人骂😄
|
35
also24 2022-12-22 13:15:42 +08:00
好像仍然很多人没意识到我前面说的 yaml 是可以用括号的。
那具体化一点,我们随便找个例子 version: "3.9" services: web: build: . ports: - "8000:5000" redis: image: "redis:alpine" 上面这一段,是可以等同于下面这一段的 {"version": "3.9","services": { "web": {"build": ".","ports": ["8000:5000"]}, "redis": {"image": "redis:alpine"} }} |
36
xuyang2 2022-12-22 13:25:30 +08:00 1
|
37
also24 2022-12-22 13:26:29 +08:00 1
好像缩进有点问题,截图说明吧,下面这几种写法,都是有效的
|
38
falcon05 2022-12-22 13:31:19 +08:00
是的,这玩意是真恶心,次看到就头大,每次改的时候小心翼翼。
|
39
falcon05 2022-12-22 13:33:23 +08:00
如果在服务器上用 vim 改,一个复制粘贴下去我了个去
|
40
lovedoing 2022-12-22 13:47:55 +08:00
每次改 clash 的配置文件复制粘贴之后缩进不对都想骂人
|
41
hxtheone 2022-12-22 14:01:48 +08:00 via iPhone
人生苦短,新项目直接 toml
|
42
tairan2006 2022-12-22 16:45:14 +08:00
你用 jsonnet 生成啊……
|
43
mingsi 2022-12-22 23:32:11 +08:00 via Android
看好几个人推荐 toml 于是了解了一下,看起来是升级版的 ini ,只适合小项目玩玩
https://hitchdev.com/strictyaml/why-not/toml/ |
44
julyclyde 2022-12-23 08:33:09 +08:00
@also24 你这个所谓用括号好像是 json 啊,不是 yaml
yaml 里好像只有 list 、dict 类型的 value 可以用括号吧 |
47
Ricardoo 2022-12-23 14:46:31 +08:00
看了一圈,没人用 json5
我倒挺喜欢的 |
48
also24 2022-12-23 21:25:28 +08:00
|
52
julyclyde 2022-12-26 11:54:28 +08:00
@also24 超集这个说法,是民间认为的,还是他们开发方的设计思想,还是他们开发方公布的现状?
这可是三个完全不同的概念呀 |
53
also24 2022-12-26 12:06:08 +08:00 1
@julyclyde #52
https://yaml.org/spec/1.2.2/#12-yaml-history The YAML 1.23 specification was published in 2009. Its primary focus was making YAML a strict superset of JSON. It also removed many of the problematic implicit typing recommendations. |
55
crazyweeds 2023-04-14 23:45:52 +08:00
ubuntu 下面编辑 netplan 配置,我已经吐了,无数遍了,都是失败。。没网络,数空格。要不是为了安装 rancher ,我绝对不会用 ubuntu ,因为 yaml !!!
|