В зависимости от того, кого вы спросите, 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 минут.
Спасибо за прочтение 💜
Вы также можете связаться со мной в Твиттере.
Не забудьте поставить 👏