YAML
ما هو YAML؟
اقترح Clark Evans صيغة YAML سنة 2001. Ingy döt Net وOren Ben-Kiki أيضاً من أوائل الكتّاب. الاسم يعني YAML Ain't Markup Language. حُسبت أولاً Yet Another Markup Language ثم تغيّرت لتقول إنها ليست لغة ترميز. المفتاح والقيمة يفصل بينهما نقطتان. القائمة تبدأ بشرطة. أسطر الكتلة نفسها تُزاح بعدد المسافات نفسه. الجدولة لا تُستخدم مكان المسافة. Docker Compose وGitHub Actions وكثير من إعدادات الخادم تقرأ هذا الملف. الملف نفسه لا يشغّل شيئاً. البرنامج الذي يقرأه يعمل.
فيمَ يُستخدم YAML؟
YAML لإعداد يستطيع الإنسان قراءته. القائمة والاسم والقيمة تقف في ملف واحد.
- كتابة منفذ الخادم واسمه
- حفظ قائمة عمل ذي عدة خطوات
- كتابة إعداد خدمات Docker
- تغيير المفتاح نفسه في عدة بيئات
ماذا يمكن فعله باستخدام YAML؟
بـ YAML تكتب مفتاحاً وقائمة وكتلة داخل كتلة. لا يشغّل حساباً ولا يرسم صفحة. يجب أن يقرأ البرنامج الملف بقاعدته. الإزاحة الخطأ تسحب كتلة أخرى إلى الداخل فيرى البرنامج إعداداً آخر. لا تضع كلمة مرور في هذا الملف داخل المستودع.
هل تعلم YAML صعب؟
كتابة سطرين سهلة. الصعوبة في عدد المسافات. حين يُزاح سطر أقل أو أكثر تنكسر الكتلة. إذا اختلطت الجدولة والمسافة يتوقف البرنامج الذي يقرأ. الكلمة نفسها تُحسب أحياناً نصاً وأحياناً صح أو خطأ وأحياناً رقماً. ترك ذلك بلا قصد يغيّر الإعداد. في JSON يُظهر القوس المكان الذي لم يُغلق. في YAML الخطأ أهدأ.
المزايا والحدود
الميزة: الملف يُقرأ قصيراً ويُكتب تعليق والقائمة تبدو أهدأ من JSON. الحد: خطأ الإزاحة يعطي معنى آخر. YAML ليس JSON وليس برنامجاً.
أفكار أساسية
المفتاح اسم. القيمة ما يُكتب لذلك الاسم. الإزاحة تقول داخل أي كتلة هو.
- النقطتان تفصلان المفتاح عن القيمة
- الشرطة بند قائمة
- المسافة تُحسب والجدولة لا
- الملف نفسه لا يشغّل برنامجاً
مثال قصير
هذا يكتب اسم خادم ومنفذه. لا يشغّل البرنامج.
name: nibras port: 8080
أسئلة شائعة
- هل YAML وJSON الشيء نفسه؟ لا. كلاهما يقدر أن يحفظ إعداداً. JSON يستخدم الأقواس. YAML يستخدم الإزاحة ويُكتب تعليق.
- هل YAML لغة برمجة؟ لا. البرنامج الذي يقرأ الملف يقوم بالعمل. YAML نفسه لا يشغّل شيئاً.
- هل تكون الإزاحة جدولة؟ لا. الإزاحة تُكتب بمسافات. الجدولة قد توقف القارئ.