🔹 Що таке YAML?
YAML (YAML Ain’t Markup Language) — це формат серіалізації даних, що використовується для зручного зберігання і передачі структурованої інформації. Основна його особливість — читабельність для людини, що робить його чудовим вибором для налаштувань конфігураційних файлів та збереження даних у структурованому вигляді.
🔹 Основні характеристики YAML
✅ Простота та читабельність – мінімум синтаксису, немає зайвих символів.
✅ Відступи та вкладеність – структура визначається відступами, як у Python.
✅ Підтримка структур даних – YAML підтримує прості (числа, рядки) та складні структури (списки, словники, вкладені об’єкти).
✅ Відсутність зайвих символів – на відміну від JSON, у YAML не використовуються лапки (якщо рядок без пробілів) і фігурні дужки.
✅ Коментарі – YAML дозволяє вставляти коментарі (#
), що робить файли конфігурації більш зрозумілими.
📌 Синтаксис YAML
1️⃣ Просте присвоєння значень
ім'я: Андрій
вік: 25
місто: Київ
2️⃣ Використання списків (масивів)
фрукти:
- яблуко
- банан
- виноград
🔹 Це аналогічно:
{ "фрукти": ["яблуко", "банан", "виноград"] }
3️⃣ Використання словників (об’єктів)
користувач:
ім'я: Олена
вік: 30
email: olena@example.com
🔹 Це еквівалентно JSON:
{
"користувач": {
"ім'я": "Олена",
"вік": 30,
"email": "olena@example.com"
}
}
4️⃣ Булеві значення
активний: true
заблокований: false
5️⃣ Використання багато-рядкових рядків
Блоковий стиль (збереження розривів рядків):
опис: |
Це текст, що містить
кілька рядків.
Усі розриви рядків збережено.
Складений стиль (об’єднання рядків в один):
опис: >
Це текст, що містить
кілька рядків,
але вони об'єднаються в один.
🔹 Результат:
"Це текст, що містить кілька рядків, але вони об'єднаються в один."
6️⃣ Посилання та якорі (DRY-принцип)
адміністратор: &user
ім'я: Петро
роль: адміністратор
модератор:
<<: *user
роль: модератор
🔹 У цьому випадку модератор
успадкує всі властивості адміністратор
, але зможе змінити роль.
📌 Використання YAML у різних сферах
1️⃣ Конфігураційні файли
– Docker (docker-compose.yml
)
– Kubernetes (deployment.yml
)
– Ansible (playbook.yml
)
– CI/CD (GitHub Actions, Travis CI)
2️⃣ Обмін даними між сервісами
– Альтернатива JSON у API
– Конфігурації для мікросервісів
3️⃣ Налаштування програм
– Web-фреймворки (Vue, React, Angular)
– Ігрові рушії (Unity, Unreal Engine)
📌 YAML vs JSON: порівняння
Параметр | YAML | JSON |
---|---|---|
Читабельність | 🔥 Легше для людини | 🤖 Машиноорієнтований |
Коментарі | ✅ Підтримує # |
❌ Немає коментарів |
Синтаксис | Мінімальний | Фігурні дужки {} |
Робота з масивами | ✅ Підтримує списки - |
✅ Використовує [] |
Вкладеність | Використовує відступи | Використовує : і {} |
Розмір файлу | 🔥 Менший (без дужок) | 📂 Трохи більший |
Швидкість парсингу | 🐌 Повільніший | ⚡ Швидший |
📌 Висновки
✔ YAML – це чудовий формат для конфігураційних файлів, бо легко читається людиною.
✔ Якщо потрібно швидко передавати дані між сервісами – краще використовувати JSON.
✔ YAML гнучкіший завдяки підтримці коментарів, посилань та вкладених структур.
✔ Використання YAML спрощує налаштування DevOps-процесів і автоматизацію.
Якщо працюєш із Docker, Kubernetes, CI/CD або DevOps, тобі 100% доведеться працювати з YAML! 🚀