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

طبيعة Ruby الديناميكية
طبيعة Ruby الديناميكية
على خلاف اللغات ذات الأنواع الساكنة، تتيح لك Ruby تعديل الفئات والكائنات ديناميكيًا.
يمكن إنشاء الأساليب والمتغيرات وحتى الفئات وتعديلها أثناء التشغيل.
مثال بسيط على البرمجة الوصفية
مثال بسيط على البرمجة الوصفية
باستخدام send، يمكننا استدعاء الأساليب ديناميكيًا.
class Person
def greet
'Hello!'
end
end
p = Person.new
puts p.send(:greet)مزايا البرمجة الوصفية
مزايا البرمجة الوصفية
تتيح البرمجة الوصفية ما يلي:
- شيفرة أقل تكرارًا (مبدأ DRY).
- تطبيقات أكثر مرونة وديناميكية.
- إجراء التعديلات والتحسينات بسهولة أثناء التشغيل.
أين تُستخدم البرمجة الوصفية؟
أين تُستخدم البرمجة الوصفية؟
تُستخدم البرمجة الوصفية في:
- Ruby on Rails (حيث يعرّف Active Record الأساليب ديناميكيًا).
- DSLs (اللغات الخاصة بالمجال).
- أطر الاختبار مثل RSpec.
استخدام instance_eval
استخدام instance_eval
يتيح instance_eval تنفيذ الشيفرة في سياق كائن.
class Person
end
p = Person.new
p.instance_eval { @name = 'Alice' }
puts p.instance_variable_get(:@name)استخدام class_eval
استخدام class_eval
يعدّل class_eval فئةً ديناميكيًا.
class Person
end
Person.class_eval do
def greet
'Hello!'
end
end
puts Person.new.greetمخاطر البرمجة الوصفية الأمنية
مخاطر البرمجة الوصفية الأمنية
قد يؤدي استخدام البرمجة الوصفية إلى مخاطر أمنية:
- قد يكون تنفيذ شيفرة غير معروفة باستخدام
evalخطيرًا. - قد يؤدي تجاوز الأساليب المضمّنة إلى سلوك غير متوقع.
مراجعة البرمجة الوصفية
تهانينا!
لقد تعلمت ما هي البرمجة الوصفية وكيف تتيح إجراء تعديلات ديناميكية في Ruby.
بعد ذلك، ستستكشف كيفية تعريف الأساليب واستدعائها ديناميكيًا.

الأسئلة الشائعة
هل درس «ما هي البرمجة الوصفية؟» مجاني؟
نعم — نص درس «ما هي البرمجة الوصفية؟» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ruby Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ruby Academy 4 دروس في المجموع.
ماذا ستتعلم في «ما هي البرمجة الوصفية؟»؟
افهموا كيف تتيح البرمجة الوصفية لـRuby تعديل بنيتها الخاصة أثناء التشغيل تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Ruby Academy؟
لا تُشترط خبرة سابقة. Ruby Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «ما هي البرمجة الوصفية؟»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Ruby Academy هذا؟
نعم. كل درس في Ruby Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ما هي البرمجة الوصفية؟
- التعريف الديناميكي للدوال
- الفئات المفتوحة والترقيع بالقرد
- استخدام send وeval