YAML是什么?

描述

一、YAML是什么?

YAML 首次发表于2001 年,其官方文档给出的描述:

“YAML Ain’t Markup Language” (abbreviated YAML) is a data serialization language designed to be human-friendly and work well with modern programming languages for common everyday tasks.

“YAML 不是标记语言 ”(缩写为 YAML)是一种 数据序列化语言 ,旨在 对人类友好 ,并且可以与现代编程语言很好地配合完成常见的 日常任务

不是标记语言 谁是标记语言,XML就是。XML被设计为与标准通用标记语言 (SGML) 向后兼容,SGML 旨在支持结构化文档。了解更多XML知识:XML是什么与为什么

数据序列化语言 使用yaml承载来数据,并在程序之间传递,这部分职责与XML、JSON相似。

对人类友好 使得非专业人士也能轻松阅读。

编程语言日常任务 程序本身的属性、依赖关系表达,程序运行过程产生的数据,程序之间数据的传递等这些任务,都要以一种形态表达出来,常见的有:配置文件、日志文件、进程间消息传递、跨语言数据共享等等。

二、YAML为什么产生?

YAML的产生是为了:提高人们对“数据交换格式”的可读性;数据可在编程语言之间交换。

而JSON的产生是为了:简单性和通用性。JSON的生成和解析很简单,但人类的可读性相对差些。

三、YAML长啥样?

先来直观地看看YAML文件(docker-compose),不求甚解。

version: "3.7"

services:
  app:
    image: node:12-alpine
    command: sh -c "yarn install && yarn run dev"
    ports:
      - 3000:3000
    working_dir: /app
    volumes:
      - ./:/app
    environment:
      MYSQL_HOST: mysql
      MYSQL_USER: root
      MYSQL_PASSWORD: secret
      MYSQL_DB: todos

  mysql:
    image: mysql:5.7
    volumes:
      - todo-mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: todos

volumes:
  todo-mysql-data:

四、YAML文件怎么看?

  1. 了解YAML约定与语法

(1)约定

大小写敏感;

层级关系使用缩进来表示(用空格,不用TAB键;敲几个空格不限,但相同层级左侧要对齐);

注释使用 # , # 前带空格;

内容块:起始使用 --- ;结束使用 ... ;

重复内容的定义:锚点标签&表达被引用的内容,*表达引用。

(2)语法

总的来说,支持的基本数据结构: 对象 、列表以及纯量

对象: 也称字典,使用key:value来表达。

表达方式一:

Key1:
  key11: value11
  Key12: value12

表达方式二:

Key1: { key11: value11, child-key12: value12 }

列表 也称序列、数组。

表达方式一:

values:
  - value1
  - value2
  - value3

表达方式二:

values: [value1, value2, value3]

纯量 Null、布尔、字符串、整数、浮点数、日期和时间等基本数据类型。

  1. 领域YAML规范约定

不同领域都有各自的YAML规范约定。

第三部分的YAML文件是docker-compose,其规范约定在Compose Specification中,详细内容参见链接3

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分