Window.pipedriveLeadboosterConfig = { القاعدة: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', الإصدار: 2, } ؛(الدالة () { var w = نافذة إذا كان (w.LeadBooster) { console.warn('LeadBooster موجود بالفعل') } وإلا { { w.LeadBooster = { q: [], على: دالة (ن، ح) { { هذا.q.push({ t: 'o'، n: n، n: n، h: h }) }, الزناد: الدالة (n) { هذا.q.push({ t: 't'، n: n: n }) }, } } })() دور الرف في نظام روبي البيئي - The Codest
The Codest
  • نبذة عنا
  • الخدمات
    • تطوير البرمجيات
      • تطوير الواجهة الأمامية
      • تطوير الواجهة الخلفية
    • Staff Augmentation
      • مطورو الواجهة الأمامية
      • مطورو الواجهة الخلفية
      • مهندسو البيانات
      • مهندسو السحابة
      • مهندسو ضمان الجودة
      • أخرى
    • استشاري
      • التدقيق والاستشارات
  • الصناعات
    • التكنولوجيا المالية والمصرفية
    • E-commerce
    • أدتك
    • التكنولوجيا الصحية
    • التصنيع
    • الخدمات اللوجستية
    • السيارات
    • إنترنت الأشياء
  • القيمة مقابل
    • CEO
    • CTO
    • مدير التوصيل
  • فريقنا
  • دراسات الحالة
  • اعرف كيف
    • المدونة
    • اللقاءات
    • ندوات عبر الإنترنت
    • الموارد
الوظائف تواصل معنا
  • نبذة عنا
  • الخدمات
    • تطوير البرمجيات
      • تطوير الواجهة الأمامية
      • تطوير الواجهة الخلفية
    • Staff Augmentation
      • مطورو الواجهة الأمامية
      • مطورو الواجهة الخلفية
      • مهندسو البيانات
      • مهندسو السحابة
      • مهندسو ضمان الجودة
      • أخرى
    • استشاري
      • التدقيق والاستشارات
  • القيمة مقابل
    • CEO
    • CTO
    • مدير التوصيل
  • فريقنا
  • دراسات الحالة
  • اعرف كيف
    • المدونة
    • اللقاءات
    • ندوات عبر الإنترنت
    • الموارد
الوظائف تواصل معنا
السهم الخلفي العودة إلى الوراء
2022-08-25
تطوير البرمجيات

دور الرف في منظومة روبي البيئية

نيكولاس نيسوريا

تعرّف على المزيد حول دور الحامل في نظام روبي البيئي من خبيرنا وارتقِ بمهاراتك في الروبي.

أثناء العمل مع أطر عمل الويب روبي من الشائع أن نأخذ الأمور كأمر مسلم به. نحن نعلم أن إطار العمل سيتعامل مع طلبات HTTP وينفذ منطق البرمجيات الوسيطة لنا. عندما نصبح أكثر فضولًا نبدأ في التساؤل عما وراء الكواليس، وهنا نبدأ في سماعنا عن Rack.

ما هو الرف؟

إن المشروع يوصف بأنه "واجهة خادم ويب معيارية من روبي". Rack هي الواجهة التي تتيح لنا إنشاء تطبيقات ويب توحّد واجهة برمجة التطبيقات لخوادم الويب وأطر الويب والبرامج الوسيطة.

مخطط الرف الياقوتي

كما هو موضح في الصورة أعلاه، يعمل Rack كوسيط بين تطبيق الويب الخاص بنا وخادم التطبيقات، فهو يغلف طلبات HTTP في أبسط
طريقة ممكنة.

تطبيق الحامل

تطبيق الحامل هو كائن روبي (وليس فئة) يستجيب ل اتصل بـ. يأخذ وسيطًا واحدًا فقط، وهو البيئة وإرجاع مصفوفة غير مجمدة من
ثلاث قيم بالضبط

  • إن الحالة,
  • فإن الرؤوس,
  • و الجسم.

    يمكنك العثور على المواصفات التفصيلية لتطبيق الحامل هنا.

تتطلب "رف

صنف RackApp
  تعريف الاستدعاء(env)
        الحالة = 200
        الرؤوس = { 'نوع المحتوى' => 'text/html' }
        الجسم = ['<h1>تطبيق الحامل الخاص بي<h1>']

    [الحالة، العناوين، الجسم]
  نهاية
النهاية

الرف::معالج

تربط المعالجات خوادم الويب بـ Rack. يتضمن Rack معالجات لـ Thin و WEBrick و FastCGI و CGI و SCGI و LiteSpeed. يجب على كل خادم تطبيق يدعم Rack
توفير معالج لإنشاء الاتصال (لدى Puma معالج خاص به)، وعادةً ما يتم تنشيط المعالجات عن طريق استدعاء MyHandler.run(myapp). يمكن تمرير تجزئة اختيارية ثانية لتضمين التكوين الخاص بالخادم.

استخدام خادم التطبيق الرقيق

رف::معالج::Thin.run(التطبيق)

الملف الافتراضي لإضافة التكوين هو config.ru ويمكنك تنفيذه باستخدام الرفع في وحدة التحكم الخاصة بك.

برنامج الرف الوسيطة

يسمح لنا Rack بإنشاء تطبيقات البرمجيات الوسيطة (تطبيقات بين تطبيق الويب الرئيسي وخادم التطبيق). يتم ربط تطبيقات البرمجيات الوسيطة هذه معًا وتنفيذها بالتتابع.

يجب أن تقوم البرمجيات الوسيطة للحامل بتنفيذ جميع مواصفات تطبيق الحامل واستيفاء النقاط التالية:

  • يجب أن تكون فئة,
  • لديها مُهيئ يستقبل معلمة واحدة فقط (التطبيق الرئيسي),
  • واستدعاء البرنامج الوسيط التالي أو التطبيق التالي.
صنف RackMiddleware
تعريف تهيئة(التطبيق)
التطبيق = التطبيق
نهاية
تعريف استدعاء(env)
@app.call(env)
النهاية
النهاية

التدرج في الممارسة العملية

الآن بعد أن عرفنا الأساسيات، أصبحنا جاهزين لإنشاء أول تطبيق Rack مع Rack Middleware وتشغيله باستخدام Puma (خادم التطبيقات).

تثبيت التبعيات

تأكد من حصولك على الرف الجوهرة و بوما جوهرة مثبتة.

أداة تثبيت الأحجار الكريمة الرف
تثبيت جوهرة الأحجار الكريمة بوما

إنشاء ملف التكوين

أولاً، علينا إنشاء ملف يسمى config.ru وسيستفيد هذا الملف من
Rack::Builder DSL لتشغيل التطبيق وإضافة البرنامج الوسيط.

إضافة تطبيق الحامل

ضمن config.ru ملف، سنضيف تطبيق الرف البسيط الذي حددناه في
الأقسام السابقة.

# config.ru

صنف RackApp
  تعريف الاستدعاء(env)
    الحالة = 200
    الرؤوس = { { 'نوع المحتوى' =&gt; 'نص/متل'}
    الجسم = ['<h1>تطبيق الحامل الخاص بي<h1>']

    [الحالة، العناوين، الجسم]
  نهاية
النهاية

إضافة البرمجيات الوسيطة للحامل

سنقوم هنا بإجراء تعديل بسيط على برنامجنا الوسيط البسيط والآن سيضيف برنامج الخادم إلى نص HTML الخاص بنا بعد تنفيذه.

# config.ru

صنف RackMiddleware
  تعريف تهيئة(التطبيق)
    التطبيق = التطبيق
  إنهاء

  تعريف استدعاء(env)
    الحالة والرؤوس والجسم = @app.call.call(env)

    الجسم << env['SERVER_SOFTWARE']

    [الحالة، الرؤوس، الجسم]
  نهاية
النهاية

تشغيل خادم التطبيقات

كخطوة أخيرة، سنقوم بتشغيل الخادم ونرى تطبيقنا يعمل. لدينا config.ru سيبدو الملف على النحو التالي:

# config.ru

صنف RackApp
  تعريف الاستدعاء(env)
    الحالة = 200
    الرؤوس = { { 'نوع المحتوى' =&gt; 'نص/متل'}
    الجسم = ['<h1>تطبيق الحامل الخاص بي<h1>']

    [الحالة، العناوين، الجسم]
  نهاية
النهاية

صنف RackMiddleware
  تعريف تهيئة(التطبيق)
    @التطبيق = التطبيق
  نهاية

  تعريف استدعاء(env)
    الحالة والرؤوس والجسم = @app.call.call(env)

    الجسم <&lt; env[&#039;SERVER_SOFTWARE&#039;]

    [الحالة، الرؤوس، الجسم]
  نهاية
النهاية

استخدم RackMiddleware
تشغيل RackApp.new

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

نص خادم الحامل

الاستنتاجات

من الجيد في بعض الأحيان العودة إلى الأساسيات والتعرف على الرؤى حول التكنولوجيا التي نعمل بها. يمنحنا تعلُّم الرف نظرة عامة واضحة على البنية ويكشف لنا "السحر" الكامن وراء أطر عمل الويب روبي.

راية التعاون

مقالات ذات صلة

تطوير البرمجيات

GraphQL روبي. ماذا عن الأداء؟

GraphQL، مثل أي تقنية، لها مشاكلها، بعضها ناتج بشكل مباشر عن البنية وبعضها الآخر مطابق لما نراه في أي تطبيق آخر. ومع ذلك، فإن الحلول...

The Codest
توماش زكاراديك مهندس التطوير
تطوير البرمجيات

تطبيق بسيط من روبي بسيط من الصفر مع السجل النشط

MVC هو نمط تصميم يقسم مسؤوليات التطبيق لتسهيل التنقل فيه. يتبع Rails هذا النمط التصميمي حسب الاصطلاح.

The Codest
داميان واتروبا Software Engineer
E-commerce

هل Ruby on Rails تقنية جيدة لبناء أفضل أداء؟

الحد الأدنى من المنتجات القابلة للتطبيق (MVP) هو أحد مبادئ منهجية الشركات الناشئة المرنة. والهدف هو مساعدة رواد الأعمال على بدء عملية التعلم في أقرب وقت ممكن...

نيكولاس نيسوريا

اشترك في قاعدة معارفنا وابقَ على اطلاع على آخر المستجدات في قطاع تكنولوجيا المعلومات.

    نبذة عنا

    The Codest - شركة دولية لتطوير البرمجيات لها مراكز تقنية في بولندا.

    المملكة المتحدة - المقر الرئيسي

    • المكتب 303 ب، 182-184 شارع هاي ستريت نورث E6 2JA
      لندن، إنجلترا

    بولندا - مراكز التكنولوجيا المحلية

    • مجمع مكاتب فابريتشنا المكتبي، أليجا
      بوكوجو 18، 31-564 كراكوف
    • سفارة الأدمغة، كونستروكتورسكا
      11, 02-673 02-673 وارسو، بولندا

      The Codest

    • الصفحة الرئيسية
    • نبذة عنا
    • الخدمات
    • دراسات الحالة
    • اعرف كيف
    • الوظائف
    • القاموس

      الخدمات

    • استشاري
    • تطوير البرمجيات
    • تطوير الواجهة الخلفية
    • تطوير الواجهة الأمامية
    • Staff Augmentation
    • مطورو الواجهة الخلفية
    • مهندسو السحابة
    • مهندسو البيانات
    • أخرى
    • مهندسو ضمان الجودة

      الموارد

    • حقائق وأساطير حول التعاون مع شريك خارجي لتطوير البرمجيات
    • من الولايات المتحدة الأمريكية إلى أوروبا: لماذا تقرر الشركات الأمريكية الناشئة الانتقال إلى أوروبا؟
    • مقارنة مراكز تطوير التكنولوجيا في الخارج: تك أوفشور أوروبا (بولندا)، آسيان (الفلبين)، أوراسيا (تركيا)
    • ما هي أهم التحديات التي تواجه CTOs ومديري تكنولوجيا المعلومات؟
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • شروط استخدام الموقع الإلكتروني

    جميع الحقوق محفوظة © 2025 بواسطة The Codest. جميع الحقوق محفوظة.

    arArabic
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek arArabic