Що таке YAML? Детальне пояснення

🔹 Що таке 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! 🚀

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *