مقدمة إلى YAML للمبتدئين

إذا كنت مطورًا يكتب واجهات برمجة تطبيقات ، فمن المحتمل أنك صادفت YAML على الرغم من أن أداة التسلسل الأساسية لديك قد تكون JSON.

تمتلك YAML تركيبًا ودودًا خاصًا بها ، وهي لغة مفيدة تضيفها إلى ترسانة التطوير الخاصة بك.

دعنا نتعلم أساسيات YAML.

تسلسل البيانات

عندما تريد إرسال بعض بنية البيانات أو كائن عبر شبكات الكمبيوتر ، على سبيل المثال الإنترنت ، عليك تحويله إلى تنسيق خاص لقراءته وتخزينه. تُعرف العملية عمومًا باسم التسلسل ولها أهمية كبيرة على الويب. مثال الاستخدام الشائع للتسلسل هو عند قراءة البيانات من قواعد البيانات ونقلها عبر الويب.

تتضمن بعض تكوينات التسلسل JSON و YAML و XML.

في هذه المقالة ، نتحدث عن YAML ، وفي نهاية المقال ، ستتمكن من شق طريقك من خلال YAML ولديك مقدمة واضحة عن YAML.

ما هو برنامج YAML وكيف يفيدني؟

YAML هو تنسيق تسلسل البيانات الذي يرمز إلى YAML ليست لغة ترميز.

الميزة الرئيسية لاستخدام YAML هي سهولة القراءة والكتابة. إذا كان لديك ملف تكوين يجب أن يكون أسهل على البشر لقراءته ، فمن الأفضل استخدام YAML. YAML ليس بديلاً كاملاً لـ JSON لأن JSON و XML لهما مكانهما أيضًا ؛ ومع ذلك ، من المفيد تعلم YAML.

فائدة أخرى لـ YAML هي دعمها لأنواع بيانات مختلفة مثل الحالات والمصفوفات والقواميس والقوائم والقياسات. إنه يدعم اللغات الأكثر شيوعًا مثل JavaScript و Python و Ruby و Java وما إلى ذلك.

  أفضل 5 محافظ من ألياف الكربون بتقنية حجب RFID (إصدار 2021)

يدعم YAML المسافات فقط ، وهو حساس لحالة الأحرف بالإضافة إلى أنه حساس للمساحة. علامات التبويب غير مقبولة عالميا. يحتوي ملف YAML على الامتداد .yaml.

بناء جملة YAML الأساسي

يبدأ كل YAML بـ – مما يدل على بداية ملف YAML.

عند إنشاء واجهة برمجة تطبيقات ، نحن مهتمون بميزة تقدمها YAML تُعرف باسم التعيين.

توضح الأمثلة التالية مثال التعيين في YAML.

---
name: James
boy: yes
GPA: 3.41

بناء جملة التعيين هو المفتاح: القيمة. (لاحظ المساحة ، إنها مهمة جدًا في YAML ، على عكس JSON أو XML.

يدعم YAML أيضًا أنواع البيانات مثل الأحرف والسلاسل والأعداد الصحيحة والقيم العائمة والمجموعات مثل المصفوفات والقوائم التي يتم إنشاؤها من أنواع البيانات الأساسية.

أنواع البيانات في YAML

دعنا نرى مثال YAML أدناه:

---

MALE: FALSE

GPA: 3.61

ISSUES: NULL

NAME: “BIGYAN”

AGE: 16

نوع البيانات الأول هو نوع منطقي ، حيث يمكن أن يحتوي على قيمتين: صواب أو خطأ. قيمة المعدل التراكمي هي النقطة العائمة. يدعم YAML أيضًا نوع البيانات الفارغ كما لدينا في “المشكلات”. قيمة “الاسم” عبارة عن سلسلة يجب نقلها داخل علامات اقتباس مزدوجة أو مفردة. يدعم YAML أيضًا سلسلة متعددة الأسطر وسلسلة متعددة الأسطر باعتبارها سلسلة واحدة لسهولة القراءة.

سلاسل متعددة الأسطر وسطر واحد

---

About: >

 Hello this is Ryan

 From Alabama and I like to

 Play soccer.

يتيح لك الرمز > كتابة سلسلة سطر واحد إلى عدة أسطر. الجملة هي في الواقع وصف سطر واحد على الرغم من أن لدينا عدة أسطر.

يمكن أن يكون لدينا أيضًا سلاسل أسطر متعددة إذا استخدمنا | رمز مثل المسموح به:

About: |

 This is a multiline string

 And will be printed line wise.

قائمة

القوائم مهمة جدًا في YAML.

  لماذا يجب تجنب منافذ USB العامة

ويرد مثال على القائمة أدناه.

---

- apple

- banana

- mango

يظهر التعيين من الحجمي إلى القوائم أدناه ، وهو أمر مهم جدًا لمعظم ملفات التكوين.

---

Fruits:

 Apples

 Banana

 Guava 

التداخل مطلوب لتعيين الحجم إلى القائمة. يمكن أن يكون لدينا أيضًا قوائم متداخلة متعددة ، كما هو موضح في المثال أدناه.

Automobiles:

 Car:

     Hyundai

     Volkswagen

     Ford

هنا تتداخل السيارات داخل السيارات ، وتتداخل Hyundai داخل السيارات. هذا مثال على تداخل متعدد. يمكن أن يكون لدينا تداخل متعدد بقدر ما نريد.

Subjects:

     Engineering:

       Mechanical engineering:

         Design and manufacture

         Automobile

         Control and Design

       Civil engineering:

         Structural engineering

         Hydropower

       Arts:

         Medieval

         Modern

         Painting

يوفر YAML أيضًا & و * الرموز كمثبتات ومراجع إلى المرساة لتجنب الازدواجية. إنها ضرورية في ملفات التكوين في أطر مثل Ruby on Rails لجعل ملف YAML أصغر.

انظر المثال أدناه

<span class="hljs-attr">details:</span> <span class="hljs-meta">&details</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">"John"
</span>    age: 18
profession: engineer

<< : * details

وهو ما يعادل:

profession: engineer

name: "John"

age: 18

YAML في بايثون

تدعم Python YAML ، بما في ذلك بعض الوحدات النمطية مثل ruamel و pyyaml. ابدأ بتثبيت Pyyaml

نقطة تثبيت بيامل

بالنسبة للبرنامج التعليمي ، قم بإنشاء ملف باسم details.yaml

name: "john"

age:18

gender: male

قم بإنشاء ملف آخر باسم feed.yaml بالمحتوى التالي:

sports:

 football
 basketball
 cricket
 baseball

---
countries:
 Brazil
 Lithuania
 Australia
 USA

لنبدأ بقراءة تفاصيل الملف

import yaml

with open('details.yaml') as f:
    
    data = yaml.load(f, Loader=yaml.FullLoader)
    print(data)

بعد تشغيل ملف details.py ، نحصل على الإخراج التالي

 $ python details.py
{'name': "john", 'age': 18, 'gender': male}
import yaml

with open(r'feed.yaml') as file:
    # The FullLoader parameter handles the conversion from YAML
    # scalar values to Python the dictionary format
    fruits_list = yaml.load(file, Loader=yaml.FullLoader)

    print(fruits_list)

كتابة YAML إلى ملفات في بايثون

import yaml

dict_file = [{'sports' : ['hockey', 'rugby', 'tennis', 'ping pong', 'football', 'badminton']},
{'countries' : ['Jamaica', 'England', 'Nepal', 'Netherlands', 'South Africa', 'Bolivia', 'Portugal']}]

with open(r'E:data.yaml', 'w') as file: #create a new yaml file 
    data = yaml.dump(dict_file, file)

تنفيذ YAML في Node.js

Node.js هي لغة معالجة من جانب الخادم ، وتسلسل البيانات له أهمية كبيرة في عملية التطوير.

  قم بإلغاء تثبيت iTunes أو تعطيله على نظام التشغيل Mac OS X [Guide]

بالنسبة لبرنامجنا التعليمي ، دعنا نفكر في مثال الملف التالي. yaml:

name:John

age:18

Hobbies:

 Hobby1:Football

 Hobby2:BasketBall

 Hobby3:Hockey

Job:

-System administrator

-Programmer

لدينا مكتبة npm متاحة لـ Node.js تسمى شبيبة يامل. لنبدأ بتثبيت الوحدة بواسطة

npm install js-yaml

ثم نستخدم الوحدة النمطية js-yaml في ملفنا.

const yaml = require('js-yaml'); //initialize js-yaml
const fs   = require('fs'); //initialize filestream

try {
  const result = yaml.load(fs.readFileSync('example.yml', 'utf8'));
  console.log(result);
} catch (e) {
  console.log(e); //catch exception
}

استنتاج

في أطر البرمجة والتطبيقات الحديثة حيث يتم تخزين البيانات أو توزيعها ، أصبح YAML أكثر شيوعًا في ملفات التكوين. يستهدف YAML العديد من تطبيقات الاتصال نفسها مثل لغة التوصيف الموسعة (XML) ، لكن له حد أدنى من بناء الجملة يختلف عمداً عن XML.

يمكن إنشاء ملفات YAML لهياكل البيانات الثابتة باستخدام أوامر الطباعة التي تكتب كلاً من البيانات وزخرفة YAML الخاصة. ومع ذلك ، يُفضل استخدام باعث YAML المخصص لإلقاء بيانات هرمية متنوعة أو معقدة. وبالمثل ، مع التعبيرات العادية ، يتم تحليل ملفات YAML الأساسية (على سبيل المثال ، أزواج المفتاح والقيمة) بسهولة.