• 请不要在回答技术问题时复制粘贴 AI 生成的内容
NoKey
V2EX  ›  程序员

为什么我总觉得 yml 文件格式很奇葩

  •  
  •   NoKey · Apr 12, 2019 · 11294 views
    This topic created in 2763 days ago, the information mentioned may be changed or developed.
    从第一次见到 yml 文件到现在,我依然觉得这个文件格式很奇葩
    一直无法接受和使用这种文件格式
    58 replies  •  2019-04-13 21:52:21 +08:00
    love
    love
    Apr 12, 2019
    1
    我也是接受不了。
    而且复杂的细节还挺多。
    myyou
    myyou
    Apr 12, 2019❤️2
    2
    的确奇葩,个人感觉 toml 更好
    NieKing
    NieKing
    Apr 12, 2019
    3
    Flutter 里面还有 yaml 呢
    wc951
    wc951
    Apr 12, 2019 via Android
    4
    为啥,因为缩进?
    wizardoz
    wizardoz
    Apr 12, 2019❤️1
    5
    yaml 和 json 是对等的呀,你就认为是在编辑 json 好了。不过比 json 友好。
    wangxiaoaer
    wangxiaoaer
    Apr 12, 2019❤️1
    6
    @myyou #2 +1,toml 那屎一样的嵌套,毫无可读性而言,真不知道是怎么起来的。
    ShareDuck
    ShareDuck
    Apr 12, 2019 via Android❤️1
    7
    不喜欢缩进要求严格的格式。
    no1xsyzy
    no1xsyzy
    Apr 12, 2019❤️1
    8
    如果不太复杂反而自己按需拓展的 INI 会更好。
    YAML 方便的就是这些解析器不需要自己拓展。
    另外,我觉得一个大问题是结构太松散导致眼 parse 费力,尤其是 array 套 object 时。
    bgm004
    bgm004
    Apr 12, 2019 via Android
    9
    因为缩进问题。。忙活半小时
    mcfog
    mcfog
    Apr 12, 2019❤️1
    10
    @wizardoz
    和 json 等价的部分只是 yaml 的一个子集,其实 yaml 是一个比 xml 还要复杂的格式
    wolfie
    wolfie
    Apr 12, 2019
    11
    缩进 2 -> 4 就好了
    runze
    runze
    Apr 12, 2019
    12
    yaml 过于复杂了,toml 相比之下简明很多。
    NoKey
    NoKey
    OP
    Apr 12, 2019
    13
    properties 文件不好么,为啥我看现在开始流行 yml
    LuJason
    LuJason
    Apr 12, 2019❤️1
    14
    @ShareDuck python 开发者 退出了群聊
    runze
    runze
    Apr 12, 2019
    15
    NULL, Null, null, nil, Nil, ~, 留空

    在 yaml 里,以上哪些相当于 json 里的 null ?
    yanaraika
    yanaraika
    Apr 12, 2019
    16
    格式简单,表达能力弱 <--------------------> 格式复杂,表达能力强

    ad hoc 格式(例如 linux 中的 resolv.conf), json, toml, yaml, code as config
    MilkShake
    MilkShake
    Apr 12, 2019
    17
    k8s 也用到了 yaml,的确很麻烦,缩进一些问题。如果找个好点的文本编辑器,还可以过得去。
    wesnow
    wesnow
    Apr 12, 2019
    18
    对于很多开源 Java 项目都用 yaml 觉得很奇怪,明明 properties 比 yaml 更易读更易写,为什么不用 properties?
    Phariel
    Phariel
    Apr 12, 2019 via iPhone
    19
    说起 yaml 我就想起了 Jade 一个远古的 template engine
    http://jade-lang.com/

    异曲同工之妙。。。
    ansyx
    ansyx
    Apr 12, 2019 via Android
    20
    不能用 tab 逼死个人
    hoyixi
    hoyixi
    Apr 12, 2019
    21
    你知道 stylus 吗?
    trait
    trait
    Apr 12, 2019 via iPhone❤️1
    22
    @wangxiaoaer toml 简直完美 没觉得难读
    whileFalse
    whileFalse
    Apr 12, 2019
    23
    @mcfog 对,所以其实不用那些 feature 就好了。
    yaml 大部分用法还是代替 json 吧。
    abmin521
    abmin521
    Apr 12, 2019 via Android
    24
    长配置 yaml 还是很爽的
    推荐阅读 https://linux.cn/article-10423-1.html
    @wesnow
    shawndev
    shawndev
    Apr 12, 2019
    25
    看来因为 tab 吃亏的不止我一个……不过 json 也确实不太适合用于配置文件。目前看来微软使用的 ini 和苹果使用的 plist 还是比较好的选择
    shawndev
    shawndev
    Apr 12, 2019❤️1
    26
    还是补充一句吧,plist 优于 json 在于可以注释,ini 优于 json 在于冗余信息少,而且直观
    lincanbin
    lincanbin
    Apr 12, 2019 via Android
    27
    JSON 不支持注释,数组不支持,
    lincanbin
    lincanbin
    Apr 12, 2019 via Android
    28
    数组不支持以,结尾
    jsthon
    jsthon
    Apr 12, 2019 via iPhone
    29
    TAB 真的是害人不浅
    auin
    auin
    Apr 12, 2019
    30
    properties
    wangxiaoaer
    wangxiaoaer
    Apr 12, 2019
    31
    @wesnow #18 properties 默认不是 utf-8 编码,遇到中文就跪了
    version
    version
    Apr 12, 2019
    32
    yml 兼容性好很多.
    json 配置.比较坑.特别是数组的那些配置.
    json 新标准很多人不知道.,不好统一和推广.或者识别..所以很多开源都推荐 yml 了.

    pm2 用 yml 靠谱点.json 配置容易环境变量参数不生效
    HangoX
    HangoX
    Apr 12, 2019
    33
    properties 主要问题是长吧?阅读起来比较困难,json 主要是不好编辑,所以就出现了 yaml,编辑起来的确方便
    ojbkojbk
    ojbkojbk
    Apr 12, 2019
    34
    yml 可读性高这一条就可以秒杀 properties
    icylogic
    icylogic
    Apr 12, 2019 via iPhone❤️1
    35
    作为一个,人类易读,易写,同时可以支持比较复杂的配置和数据格式

    - yaml 用缩进真是太可怕了,我能接受 python 作为代码用缩进控制逻辑,但配置文件不应该这么搞。而且过于复杂。
    - json 噪音太多,没有标准注释
    - ini, conf 表达能力弱
    - xml 噪音太多,其他问题倒不大,可以勉强接受
    - 其他格式 太小众的个人项目 /没有一个大项目在用 /没有多语言比较成熟的 binding

    我选择 toml ……
    magicdawn
    magicdawn
    Apr 12, 2019
    36
    好用啊
    btw prettier 也支持 yaml 了
    https://prettier.io/docs/en/index.html
    jhsea3do
    jhsea3do
    Apr 12, 2019
    38
    docker-compose / etcd 用 yaml 了很多年 已经习惯了
    rockyou12
    rockyou12
    Apr 12, 2019❤️1
    39
    gradle 这种用代码来做 dsl 才配置文件的未来,可简单可复杂,又有无穷的表达能力
    biossun
    biossun
    Apr 12, 2019
    40
    其实你需要的只是一个支持 yaml 语法检查的编辑器,甚至它可以自动帮你修复一些语法格式上的问题。
    test0x01
    test0x01
    Apr 12, 2019 via Android
    41
    你只需要使用它的最基础的功能。是你自己把文件写那么复杂。人家只是复杂功能,不代表你一定要用啊。
    Varobjs
    Varobjs
    Apr 12, 2019 via Android
    42
    个人觉得 yaml 比 json 好
    hantsy
    hantsy
    Apr 12, 2019
    43
    Spring Boot 支持 YAML,除非简单几个属性的配置才用 properties,一般都是用 YAML 格式, 可读性好得多
    impl
    impl
    Apr 12, 2019 via Android
    44
    Cargo.toml
    undefined8
    undefined8
    Apr 12, 2019
    45
    更喜欢 yaml。。因为能注释
    guyujiezi
    guyujiezi
    Apr 12, 2019
    46
    yaml 方便阅读
    anguiao
    anguiao
    Apr 12, 2019
    47
    YAML 不管是手写还是阅读都还可以吧,起码比 JSON 好多了
    reus
    reus
    Apr 12, 2019
    48
    toml 大法好
    omph
    omph
    Apr 12, 2019
    49
    [JSON、XML、TOML、CSON、YAML 大比拼]( https://linux.cn/article-10664-1.html)
    crist
    crist
    Apr 12, 2019
    50
    toml 大法好
    zengguibo
    zengguibo
    Apr 13, 2019
    51
    反人类,没有工具根本编辑不了,多个空格都报语法错误
    iyaozhen
    iyaozhen
    Apr 13, 2019 via Android
    52
    yaml 很好用呀,能注释,带基本数据结构
    格式要求严格才好,统一。Python 党很喜欢。
    Sparetire
    Sparetire
    Apr 13, 2019 via Android
    53
    yaml 在不超过 30 行的配置里用起来很愉快,不需要像 json 那样带引号,且支持注释,但是更长的话人眼游标卡尺也是很累的。。大概和作者是 python 出身有关?
    toml 感觉挺好
    sunocean
    sunocean
    Apr 13, 2019
    54
    只有我觉得,读起来很舒服吗? (尤其是读完 JSON 以后)
    arthas2234
    arthas2234
    Apr 13, 2019
    55
    yaml 要配一个好一点的编辑器,不然很难受
    lrh3321
    lrh3321
    Apr 13, 2019 via Android
    56
    习惯了以后觉得还凑合,至少比 xml 简洁多了。不过我还是更希望用 json
    www5070504
    www5070504
    Apr 13, 2019
    57
    本 python 党特别不喜欢 yaml。。。
    fooofei
    fooofei
    Apr 13, 2019 via iPhone
    58
    如果实现语言是 python 这样的解释型脚步语言,最好的配置文件应该是.py 文件这样同类型的,既能写注释,又能作为代码无缝使用。编译型语言就不适用这个规则了,才需要 toml 这样的配置文件。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3013 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 134ms · UTC 11:46 · PVG 19:46 · LAX 03:46 · JFK 06:46
    ♥ Do have faith in what you're doing.