منسق YAML
لماذا يجب تنسيق ملفات YAML؟
تعتبر لغة YAML حساسة للغاية للمسافات البادئة - مجرد مسافة زائدة واحدة يمكن أن تسبب أخطاء تحليل (parse errors) أو تلفاً صامتاً للبيانات. أدوات مثل Kubernetes، و Docker Compose، و GitHub Actions، و Ansible تستخدم جميعها تكوينات YAML، حيث يمكن لأخطاء التنسيق أن تعطل عمليات النشر بالكامل. منسق YAML الخاص بنا يتحقق من الصياغة، ويوحد المسافات البادئة، ويضمن أن كود YAML الخاص بك صحيح دائماً.
توحيد المسافات البادئة
يوحد جميع المسافات البادئة لتصبح بمسافتين متناسقتين في كامل الوثيقة.
التحقق من الصياغة
يكتشف أخطاء الإزاحة، والدمج بين التبويبات (tabs) والمسافات قبل التسبب في فشل التشغيل.
المراسي والأسماء المستعارة
يدعم تماماً كلاً من YAML anchors (&) و aliases (*) لإعادة استخدام الأكواد داخل الوثيقة.
تنسيق YAML في 3 خطوات
لصق كود YAML
الصق ملفات Kubernetes، أو سير عمل GitHub Actions، أو أي ملف تكوين YAML.
التنسيق والتحقق
تقوم الأداة بالتحقق من الصياغة وإعادة التنسيق بمسافات بادئة متناسقة تلقائياً.
النسخ والنشر
انسخ كود YAML المنسق وأعده إلى ملفك أو أداة النشر الخاصة بك.
حالات استخدام تنسيق YAML
بيانات Kubernetes
تنسيق ملفات Deployment و Service و ConfigMap قبل إرسالها إلى التجمع (Cluster).
خطوط أنابيب CI/CD
التحقق من ملفات GitHub Actions و GitLab CI لمنع فشل خط أنابيب الأتمتة.
كتب لعب Ansible
تنسيق والتحقق من مهام Ansible وملفات المتغيرات (vars) لأكواد بنية تحتية نظيفة.
Docker Compose
تأكد من أن ملفات docker-compose.yml منسقة بشكل سليم قبل تشغيل الحاويات.
أفضل ممارسات YAML
✓ استخدم المسافات، لا تستخدم التبويبات (Tabs)
تمنع لغة YAML تماماً استخدام Tabs للمسافات البادئة. تأكد دائماً من إعداد محرر الكود لإدراج المسافات عند الضغط على Tab.
✓ استخدم الاقتباس للأحرف الخاصة
النصوص التي تحتوي على أحرف مثل : # [ ] { } أو تبدأ بأحرف خاصة يجب وضعها بين علامات اقتباس لتجنب سوء فهمها.
✓ استخدام المراسي لتقليل التكرار
تسمح لك Anchors (&name) و Aliases (*name) بإعادة استخدام القيم في الوثيقة لإبقاء الإعدادات مختصرة ونظيفة.
✓ الفحص قبل الرفع (Commit)
استخدم هذا المنسق أو أدوات مثل yamllint كجزء من عملية الرفع لاكتشاف المشاكل قبل وصولها للمستودع.
❓ الأسئلة الشائعة
لماذا تفشل ملفات YAML عند استخدام Tabs بدلاً من المسافات؟
لا تسمح مواصفات YAML باستخدام التبويبات للتنسيق لأن المحررات المختلفة تعرضها بعروض متباينة. استخدام المسافات يضمن تنسيقاً ثابتاً يمكن لجميع برمجيات التحليل قراءته بوضوح.
ماذا تفعل الرموز (&) و (*) في YAML؟
تحدد الرموز (&) كتلة قابلة لإعادة الاستخدام، بينما ترمز (*) للرجوع إليها. يتيح لك ذلك كتابة القيم مرة واحدة واستخدامها في عدة أماكن.
ما الفرق بين YAML و JSON؟
تعتبر YAML ابنة متطورة لـ JSON - فكل كود JSON صالح هو كود YAML صالح أيضاً. تضيف YAML ميزات مثل التعليقات، والنصوص متعددة الأسطر، وهي أكثر قابلية للقراءة للبشر.
لماذا يتم اختيار YAML لتكوينات DevOps؟
تمتلك YAML دعماً واسعاً جداً في الأدوات (Kubernetes, Ansible) ويمكنها تمثيل الهياكل المتداخلة بشكل مقتضب للغاية وقابل للقراءة.
هل يمكنني ضغط ملفات YAML؟
تعتمد YAML بطبيعتها على المسافات لتحديد الهيكل، لذا لا يمكن ضغطها بنفس الطريقة التي نضغط بها JSON أو CSS، ولكن يمكن إزالة التعليقات والأسطر الفارغة الزائدة.