Найти в Дзене

Язык разметки YAML. Знакомимся

Давайте сегодня разберем язык разметки, который не хочет чтобы его таким считали. Забавно, но факт. YAML ("YAML Ain't Markup Language" - «YAML — не язык разметки») — это человекочитаемый формат сериализации данных, который используется для представления структурированной информации. YAML популярен благодаря своей простоте, минимализму и удобству для чтения и написания конфигурационных файлов. Его часто используют в DevOps, программировании и системном администрировании. 1. Человеко-читаемость: YAML стремится быть максимально простым для понимания людьми. В отличие от XML или JSON, он не содержит большого количества скобок или других специальных символов. 2. Отступы: YAML использует отступы для вложенности структур данных, наподобие Python. 3. Универсальность: YAML поддерживает разные типы данных, такие как строки, числа, списки, логические значения и т.д. 4. Совместимость с JSON: YAML является подмножеством JSON, что означает, что любой корректный JSON-документ также является коррект
Оглавление

Давайте сегодня разберем язык разметки, который не хочет чтобы его таким считали. Забавно, но факт.

YAML ("YAML Ain't Markup Language" - «YAML — не язык разметки») — это человекочитаемый формат сериализации данных, который используется для представления структурированной информации.

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

Основные особенности YAML

1. Человеко-читаемость: YAML стремится быть максимально простым для понимания людьми. В отличие от XML или JSON, он не содержит большого количества скобок или других специальных символов.

2. Отступы: YAML использует отступы для вложенности структур данных, наподобие Python.

3. Универсальность: YAML поддерживает разные типы данных, такие как строки, числа, списки, логические значения и т.д.

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

Основы синтаксиса YAML

1. Ключ-значение

YAML представляет данные в виде пар "ключ-значение". Ключи и значения разделяются двоеточием и последующим пробелом:

-2

Пример:

-3

2. Отступы и вложенные структуры

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

Пример:

-4

Здесь адрес является вложенной структурой для объекта человек.

3. Массивы (списки)

YAML поддерживает массивы (или списки), которые обозначаются с помощью символа - перед элементом списка.

Пример:

-5

также списки можно использовать для хранения сложных объектов:

-6

4. Типы данных

YAML поддерживает несколько типов данных:

  • Строки: Строки могут быть записаны как без кавычек, так и в одинарных или двойных кавычках.
-7
  • Числа: Числа также поддерживаются как целые, так и с плавающей точкой.
-8
  • Булевы значения: YAML поддерживает true и false, которые могут быть записаны в нижнем или верхнем регистре.
-9
  • Null: Значение null может быть обозначено как null, ~, или просто оставлено пустым.
-10

5. Многострочные строки

YAML поддерживает многострочные строки, которые могут быть записаны двумя способами:

  • С сохранением новых строк (|): Все переносы строк сохраняются.
-11
  • С объединением в одну строку (>): Переносы строк удаляются, и строка объединяется в одну.
-12

6. Комментарии

Комментарии в YAML начинаются с символа #. Все, что находится после #, игнорируется при обработке документа.

Пример:

-13

7. Анкоры и ссылки

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

Пример использования анкоров:

-14

Здесь мы определили настройки по умолчанию с помощью якоря &настройки_по_умолчанию и затем использовали их в другом месте, ссылаясь на них с помощью *настройки_по_умолчанию. Также можно переопределить отдельные поля.

8. Теги и типы данных

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

Пример:

-15

9. Множества и словари

YAML поддерживает и более сложные структуры данных, такие как множества и словари (хеши).

Пример множества:

-16

Пример словаря:

-17

Преимущества YAML

1. Простота для чтения: В отличие от JSON или XML, YAML более минималистичен и не требует большого количества символов, что делает его более удобным для чтения.

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

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

4. Поддержка в популярном ПО: YAML используется во многих инструментах и системах, таких как Ansible, Kubernetes, Docker Compose и т.д.

Недостатки YAML

1. Чувствительность к отступам: Как и в Python, неправильные отступы могут привести к ошибкам, что иногда усложняет отладку.

2. Сложность для больших файлов: Для больших и сложных структур YAML может стать менее управляемым.

3. Отсутствие строгих правил формата: Из-за гибкости синтаксиса могут возникать неоднозначности при парсинге некоторых сложных файлов.

Примеры использования YAML

1. Конфигурационные файлы: YAML часто используется для конфигураций в таких инструментах, как Ansible, Kubernetes, Docker Compose, CircleCI и многих других.

Пример конфигурации Docker Compose:

-18

2. Сериализация данных: YAML можно использовать для сериализации данных в таких языках программирования, как Python, Ruby и другие.

Заключение

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

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

Если Вам интересно, что еще можно найти на канале QA Helper, прочитайте статью: Вместо оглавления. Что вы найдете на канале QA Helper - справочник тестировщика?

Не забудьте подписаться на канал, чтобы не пропустить полезную информацию: QA Helper - справочник тестировщика

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

Обязательно прочитайте: Что должен знать и уметь тестировщик

Также будет интересно почитать: Вопросы которые задают на собеседовании тестировщикам