0Pricing
Ruby Academy · درس

اختيار التنسيق

المقايضات

اختيار التنسيق درس مجاني في Ruby Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ruby Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ruby Academy 4 دروس في المجموع.

ثلاث صيغ، وثلاثة استخدامات

أصبحت تعرف الآن JSON وCSV وYAML. لكل منها مواقف يتفوق فيها. واختيار الصيغة المناسبة يجعل إنتاج بياناتك وتخزينها واستهلاكها أسهل.

  • JSON لواجهات API والويب
  • CSV للبيانات الجدولية وبيانات جداول البيانات
  • YAML للإعدادات
puts ['JSON', 'CSV', 'YAML'].join(', ')

مزايا JSON

يتميز JSON بصغر حجمه ودعمه الشامل، كما يُحوَّل إلى Hashes وArrays متداخلة. وهو المعيار الفعلي لـواجهات API للويب وتبادل البيانات بين الخدمات.

require 'json'
puts({ id: 1, items: [1, 2] }.to_json)

عيوب JSON

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

require 'json'
begin
  JSON.parse('{"a":1,}')
rescue JSON::ParserError
  puts 'trailing comma not allowed'
end

مزايا CSV

يُعد CSV مثاليًا لـالبيانات المسطحة والجدولية المكوّنة من صفوف وأعمدة. فجداول البيانات وعمليات التصدير والاستيراد الجماعي كلها تتعامل مع CSV، كما أنه مضغوط للغاية عند استخدامه مع الجداول الكبيرة.

require 'csv'
puts(CSV.generate { |c| c << ['a', 'b']; c << [1, 2] })

عيوب CSV

لا يستطيع CSV تمثيل البيانات المتداخلة أو الهرمية. ولا يملك نظامًا قياسيًا للأنواع، لذلك تكون كل القيم نصوصًا حتى تحوّلها، كما تختلف اللهجات من حيث الفواصل وعلامات الاقتباس.

require 'csv'
row = CSV.parse_line('5,true')
puts(row[0].class)
puts(row[1].class)

مزايا YAML

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

require 'yaml'
text = "# app config\nport: 8081"
puts(YAML.load(text)['port'])

عيوب YAML

تكون قواعد المسافات البادئة في YAML عرضة للأخطاء (فمسافة زائدة واحدة قد تفسده)، وقد يشكل التحميل غير الآمن خطرًا أمنيًا. كما أن تحليله أبطأ من تحليل JSON.

require 'yaml'
cfg = YAML.safe_load("port: 8081")
puts(cfg['port'])

مقارنة التداخل

يمثل كل من JSON وYAML البنية المتداخلة نفسها بصورة طبيعية، بينما لا يستطيع CSV ذلك.

require 'json'
require 'yaml'
data = { 'user' => { 'name' => 'Ada', 'roles' => ['admin'] } }
puts(data.to_json)
puts(data.to_yaml)

سهولة القراءة مقابل صغر الحجم

هناك مفاضلة: YAML أسهل في القراءة، وJSON متوازن، بينما CSV هو الأصغر حجمًا للجداول. اختر الصيغة وفقًا لكون المستهلك الرئيسي للبيانات بشرًا أم آلة.

require 'json'
require 'yaml'
h = { 'a' => 1, 'b' => 2 }
puts("JSON len: #{h.to_json.length}")
puts("YAML len: #{h.to_yaml.length}")

دليل اتخاذ القرار

قواعد سريعة:

  • هل تتعامل مع واجهة API للويب؟ JSON
  • هل تصدّر صفوفًا إلى جدول بيانات؟ CSV
  • هل هي إعدادات تطبيق يعدّلها بشر؟ YAML

عند الشك، يكون JSON الخيار الافتراضي الأكثر أمانًا لتبادل البيانات.

choice = { api: 'JSON', table: 'CSV', config: 'YAML' }
puts(choice[:config])

التحويل بين الصيغ

بما أن الصيغ الثلاث تُحلَّل إلى بنى Ruby Hash/Array نفسها، فإن التحويل بينها بسيط: حلّل صيغة، ثم صدّر إلى أخرى.

require 'json'
require 'yaml'
data = JSON.parse('{"port":8081,"name":"app"}')
puts(data.to_yaml)

اختبار سريع

ما الصيغة الأفضل افتراضيًا لملف إعدادات يعدّله المطورون يدويًا ويريدون إضافة تعليقات إليه؟

مراجعة: اختيار الصيغة

يمكنك الآن اختيار الأداة المناسبة:

  • JSON: واجهات API، وتبادل البيانات، وتوازن بين الميزات
  • CSV: الجداول المسطحة، وجداول البيانات، وصغر الحجم
  • YAML: الإعدادات، وسهولة القراءة، والتعليقات، والتداخل
  • تُحلَّل جميعها إلى بنى Ruby نفسها، لذا يسهل التحويل بينها
require 'yaml'
require 'json'
puts(YAML.load('a: 1').to_json)

الأسئلة الشائعة

هل درس «اختيار التنسيق» مجاني؟

نعم — نص درس «اختيار التنسيق» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ruby Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ruby Academy 4 دروس في المجموع.

ماذا ستتعلم في «اختيار التنسيق»؟

المقايضات تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Ruby Academy؟

لا تُشترط خبرة سابقة. Ruby Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «اختيار التنسيق»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Ruby Academy هذا؟

نعم. كل درس في Ruby Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. قراءة JSON وكتابته
  2. التعامل مع CSV
  3. تهيئة YAML
  4. اختيار التنسيق
← العودة إلى Ruby Academy