首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  程序员

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

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

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

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

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

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

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

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