Давайте сегодня разберем язык разметки, который не хочет чтобы его таким считали. Забавно, но факт.
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. Отступы и вложенные структуры
YAML использует отступы для указания вложенных структур. Важно, что отступы должны быть одинаковыми для всех уровней вложенности и, как правило, составляют два или четыре пробела.
Пример:
Здесь адрес является вложенной структурой для объекта человек.
3. Массивы (списки)
YAML поддерживает массивы (или списки), которые обозначаются с помощью символа - перед элементом списка.
Пример:
также списки можно использовать для хранения сложных объектов:
4. Типы данных
YAML поддерживает несколько типов данных:
- Строки: Строки могут быть записаны как без кавычек, так и в одинарных или двойных кавычках.
- Числа: Числа также поддерживаются как целые, так и с плавающей точкой.
- Булевы значения: YAML поддерживает true и false, которые могут быть записаны в нижнем или верхнем регистре.
- Null: Значение null может быть обозначено как null, ~, или просто оставлено пустым.
5. Многострочные строки
YAML поддерживает многострочные строки, которые могут быть записаны двумя способами:
- С сохранением новых строк (|): Все переносы строк сохраняются.
- С объединением в одну строку (>): Переносы строк удаляются, и строка объединяется в одну.
6. Комментарии
Комментарии в YAML начинаются с символа #. Все, что находится после #, игнорируется при обработке документа.
Пример:
7. Анкоры и ссылки
YAML позволяет создавать анкоры для избежания дублирования данных. Анкоры используются для обозначения повторяющихся блоков данных, которые можно затем ссылаться в других местах документа.
Пример использования анкоров:
Здесь мы определили настройки по умолчанию с помощью якоря &настройки_по_умолчанию и затем использовали их в другом месте, ссылаясь на них с помощью *настройки_по_умолчанию. Также можно переопределить отдельные поля.
8. Теги и типы данных
YAML позволяет явно указывать типы данных с помощью тегов. Например, можно указать, что значение должно быть строкой, числом или другим типом.
Пример:
9. Множества и словари
YAML поддерживает и более сложные структуры данных, такие как множества и словари (хеши).
Пример множества:
Пример словаря:
Преимущества 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:
2. Сериализация данных: YAML можно использовать для сериализации данных в таких языках программирования, как Python, Ruby и другие.
Заключение
YAML — это простой, человекочитаемый формат для хранения и передачи данных, который широко используется в программировании, DevOps и администрировании. Он удобен для описания конфигураций, позволяет легко работать с вложенными структурами данных и поддерживает различные типы данных. Однако его чувствительность к отступам может вызывать трудности, особенно при работе с большими файлами.
YAML остается одним из ключевых инструментов для описания конфигураций и данных в современном ИТ-ландшафте, благодаря своей универсальности и простоте.
Если Вам интересно, что еще можно найти на канале QA Helper, прочитайте статью: Вместо оглавления. Что вы найдете на канале QA Helper - справочник тестировщика?
Не забудьте подписаться на канал, чтобы не пропустить полезную информацию: QA Helper - справочник тестировщика
Пишите в комментариях какой пункт было бы интересно рассмотреть более подробно.
Обязательно прочитайте: Что должен знать и уметь тестировщик
Также будет интересно почитать: Вопросы которые задают на собеседовании тестировщикам