В зависимости от того, кого вы спросите, YAML означает YAML — это не язык разметки или еще один язык разметки (рекурсивная аббревиатура). Это язык сериализации данных, который позволяет хранить сложные данные в компактном и удобочитаемом формате. YAML важен для DevOps и виртуализации, поскольку он необходим для создания эффективных систем управления данными и автоматизации.

Разработчики часто упускают из виду этот мощный и простой инструмент, который может значительно улучшить ваши перспективы трудоустройства всего за пару часов обучения.

YAML похож на файлы XML и JSON, но использует более минималистский синтаксис, даже сохраняя аналогичные возможности. Он обычно используется для создания файлов конфигурации в программах инфраструктуры как кода (IoC) или для управления контейнерами в конвейере разработки DevOps.

YAML, JSON и XML

YAML(.yml)

  • Человекочитаемый код
  • Минималистский синтаксис
  • Предназначен исключительно для данных
  • Встроенный стиль аналогичен JSON (является надмножеством JSON).
  • Разрешить комментарии
  • Строки без кавычек
  • Считается «более чистым» JSON

Пример использования: YAML лучше всего подходит для приложений с большим объемом данных, которые используют конвейеры DevOps или виртуальные машины. Это также полезно, когда данные будут часто использоваться другими и должны быть легко читаемыми.

JSON

  • Труднее читать
  • Явные, строгие требования к синтаксису
  • Аналогичен встроенному стилю YAML (некоторые парсеры YAML могут читать файлы JSON)
  • Без комментариев
  • Строки требуют двойных кавычек

Пример использования: JSON предпочтительнее в веб-разработке, поскольку он лучше всего подходит для форматов сериализации и передачи данных через HTTP-соединения.

XML

  • Труднее читать
  • Подробнее
  • Действует как язык разметки, а YAML — для форматирования данных.
  • Содержит больше функций, чем YAML, например атрибуты тегов.
  • Более жестко определенная схема документа

Вариант использования: XML лучше всего подходит для сложных проектов, требующих точного контроля над проверкой, схемой и пространством имен. XML не читается человеком и требует большей пропускной способности и емкости хранилища, но предлагает непревзойденный контроль.

СТРУКТУРА YAML

YAML имеет несколько основных понятий, которые составляют большую часть данных.

Пары "ключ-значение"

Большинство вещей в файле YAML представляют собой форму пары ключ-значение, где ключ представляет имя пары, а значение представляет данные, связанные с этим именем. Пары ключ-значение являются основой для всех остальных конструкций YAML.

<key>: <value>

Скаляры и отображение

Скаляры представляют одно сохраненное значение. Скаляры присваиваются именам ключей с помощью отображения. Вы определяете сопоставление с именем, двоеточием и пробелом, а затем значением для него.

YAML поддерживает общие типы, такие как целые числа и числовые значения с плавающей запятой, а также нечисловые типы Boolean и String.

integer: 24
float: 24.0
boolean: Yes
String: “24”

Строка

Строки представляют собой набор символов, представляющих предложение или фразу. Вы либо используете | , чтобы напечатать каждую строку как новую строку или › чтобы напечатать ее как абзац.

string: Hello World
dataone: | These lines
           would be
           broken up
datatwo: > This text
           would be wrapped

Последовательность

Последовательности — это структуры данных, похожие на список или массив, которые содержат несколько значений под одним и тем же ключом. Они определяются с использованием блочного или встроенного стиля потока.

Блочный стиль использует пробелы для структурирования документа. Его легче читать, но он менее компактен по сравнению со стилем потока.

_ _ _
# Shopping List Sequence in Block Style
shopping:
  - coffee
  - cigarettes
  - water

Стиль Flow позволяет записывать последовательности внутри строки с помощью квадратных скобок, подобно объявлению массива в таких языках программирования, как Python или JavaScript.

Стиль Flow более компактен, но его труднее прочитать с первого взгляда.

_ _ _
# Shopping List Sequence in Flow Style
shopping: [coffee, cigarettes, water]

Словари

Словари — это наборы пар ключ-значение, вложенные в одну и ту же подгруппу. Они полезны для разделения данных на логические категории для последующего использования.

Словари определяются как сопоставления: вы вводите имя словаря, двоеточие и пробел, за которыми следует одна или несколько пар ключ-значение с отступом.

# An employee record
Employees:
  - kelly:
      name: Kelly Joe
      job: Developer
      team: DevOps
  - James:
      name: James Headie
      job: Project Manager
      team: Web

Словари могут содержать и более сложные структуры, например последовательности. Вложенные последовательности — хороший прием для представления сложных реляционных данных.

Дополнительная литература

Содержимое этого руководства должно быть всем, что вам нужно для удобного написания файла конфигурации. YAML поддерживает дополнительные функции, о которых вы можете прочитать на официальном сайте или менее пугающем (но менее исчерпывающем) Узнайте X за Y минут.

Спасибо за прочтение 💜

Вы также можете связаться со мной в Твиттере.

Не забудьте поставить 👏