一、YAML是什么?
YAML 首次发表于2001 年,其官方文档给出的描述:
“YAMLAin’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-alpinecommand:sh-c"yarn install && yarn run dev"ports:-3000:3000working_dir:/appvolumes:-./:/appenvironment:MYSQL_HOST:mysqlMYSQL_USER:rootMYSQL_PASSWORD:secretMYSQL_DB:todosmysql:image:mysql:5.7volumes:-todo-mysql-data:/var/lib/mysqlenvironment:MYSQL_ROOT_PASSWORD:secretMYSQL_DATABASE:todosvolumes:todo-mysql-data:
四、YAML文件怎么看?
- 了解YAML约定与语法
(1)约定
大小写敏感;
层级关系使用缩进来表示(用空格,不用TAB键;敲几个空格不限,但相同层级左侧要对齐);
注释使用 # , # 前带空格;
内容块:起始使用 --- ;结束使用 ... ;
重复内容的定义:锚点标签&表达被引用的内容,*表达引用。
(2)语法
总的来说,支持的基本数据结构:对象、列表以及纯量。
对象:也称字典,使用key:value来表达。
表达方式一:
Key1:key11:value11Key12:value12
表达方式二:
Key1: { key11: value11, child-key12: value12}
列表:也称序列、数组。
表达方式一:
values:-value1-value2-value3
表达方式二:
values:[value1, value2, value3]
纯量:Null、布尔、字符串、整数、浮点数、日期和时间等基本数据类型。
- 领域YAML规范约定
不同领域都有各自的YAML规范约定。
第三部分的YAML文件是docker-compose,其规范约定在Compose Specification中,详细内容参见链接3
发布评论请先登录
相关推荐
评论