40+ أسئلة وأجوبة مقابلة روبي أون ريلز [2023]
من المحتمل أن يكون Ruby on Rails هو أشهر إطار عمل لـ Ruby. إن بساطتها في الاستخدام ، وبنية MVC ، والمجتمع ، وقابلية التوسع هي أسباب شعبيتها.
بعض الأسماء الكبيرة التي تستخدم Ruby on Rails هي GitHub و Dribble و Shopify و Airbnb و Etsy و Kickstarter و Twitch و Zendesk ، على سبيل المثال لا الحصر.
إذا كنت مهندسًا متوسطًا أو ماهرًا في Ruby on Rails ، فإن فهم طبيعة الأسئلة التي من المحتمل أن تجدها في مقابلتك القادمة يعد خطوة ذكية.
يمكن أن تكون المقابلات مخيفة إذا لم تكن مستعدًا. ومع ذلك ، إذا كنت مستعدًا جيدًا ، فسوف تزداد ثقتك بنفسك ، وقد تكون محظوظًا للحصول على دور جديد في شركة أحلامك.
هذه بعض الأسئلة الشائعة حول مقابلة Ruby on Rails وإجاباتها.
ما هو روبي اون ريلز؟
روبي هي لغة برمجة موجهة للكائنات ذات بناء جملة بسيط.
Ruby on Rails هو إطار عمل Ruby يستخدمه المطورون لإنشاء تطبيقات الويب.
ناقش مزايا Ruby on Rails
- رمز أقل من اللغات الأخرى: يمكنك تحقيق الكثير ببضعة أسطر من التعليمات البرمجية باستخدام ريلز.
- مكتبة وأحجار كريمة واسعة النطاق: توجد العديد من المكتبات والأحجار الكريمة لتحسين وظائف تطبيق Ruby on Rails.
- سهل التعلم: يبدو كود Ruby on Rails مثل اللغة الإنجليزية البسيطة.
- مجتمع كبير.
ناقش حدود Ruby on Rails
- عند المقارنة مع Django و Node.js ، فإن سرعة تشغيل ريلز وأدائها منخفضان.
- وثائق محدودة لبعض الجواهر.
- روبي أون ريلز لديها رأي ، مما يحد من مرونة المطور.
ما هي وحدة تحكم ريلز؟
إنه المركز المنطقي لتطبيق Ruby on Rails. تقوم وحدة التحكم في ريلز بإدارة وتنسيق ومراقبة جميع التفاعلات بين المستخدمين والنماذج وطرق العرض.
ما هو سجل ريلز النشط؟
السجل النشط هو تقنية تعيين علاقة الكائن (ORM). تعمل طبقة كود روبي هذه بين منطق الكود وقاعدة البيانات الخاصة بك. بعد كتابة شفرة روبي ، تقوم بتشغيل “عمليات الترحيل” لإجراء تغييرات على قاعدة البيانات الخاصة بك.
ما هو MVC وكيف يعمل؟
يفصل النمط المعماري لوحدة التحكم في عرض النموذج (MVC) منطق الأعمال عن منطق الإدخال والعرض التقديمي.
- الموديل: يتعامل مع منطق البيانات في تطبيق ريلز.
- عرض: هذا جزء من التطبيق الذي يشاهده المستخدمون.
- المتحكم: يشبه الجسر أو الوسيط الذي يسمح للنموذج والعرض بالتواصل.
ما هي وحدة التحكم في العمل في Ruby on Rails؟
وحدة التحكم في الإجراء هي C في نمط MVC. تستقبل وحدة التحكم في الإجراءات الطلبات الواردة وتفهمها وتنتج المخرجات المناسبة.
ما هو أشعل النار في القضبان؟
Rake هو عداء مهام لتطبيقات Ruby on Rails و Ruby. تمتلك ريلز مهام Rake محددة مسبقًا لإجراء الاختبارات وتشغيل عمليات الترحيل وإنشاء قواعد البيانات.
ما هو العائد في روبي أون ريلز؟
العائد عبارة عن كلمة أساسية تستخدم داخل الأساليب لاستدعاء كتلة. لا توجد قيود على عدد الوسائط التي يمكن أن تنتقلها العائد إلى الكتلة. الكتل ، في هذه الحالة ، هي عمليات بدون أسماء يمكن تمريرها كوسيطات إضافية لعمليات أخرى.
ما هو روبي أون ريلز لجمع القمامة؟
جمع القمامة هي عملية التحكم في الذاكرة التي تستخدمها برامج الكمبيوتر. تقوم Ruby on Rails بتتبع الكائنات التي يستخدمها البرنامج بدلاً من المبرمج. وبالتالي يمكن للمطورين التركيز على المنطق والاتفاقية بدلاً من القلق بشأن تخصيص الذاكرة.
ما هو دور جمع القمامة في تطبيق ريلز؟
يحرر الذاكرة على جهازك لتنفيذ العمليات الأخرى. يحقق جمع البيانات المهملة ذلك عن طريق إزالة الكائنات التي يتعذر الوصول إليها والتي يتركها البرنامج بعد التنفيذ.
ما هو خط أنابيب الأصول؟
يوفر Asset Pipeline في Ruby on Rails إطارًا يعمل على تصغير أصول CSS و JavaScript وتوصيلها. يسمح إطار العمل هذا بدمج جميع الأصول الموجودة في تطبيق ريلز الخاص بك تلقائيًا مع الأصول من الأحجار الكريمة الأخرى.
التفريق بين السقالات الديناميكية والثابتة
السقالات هي عملية إنشاء أجزاء رئيسية من تطبيق ريلز.
تُدخل السقالات الثابتة بشكل صريح أمرًا ينتج عنه البيانات المطلوبة في الحقول المعنية. لإكمال السقالات الثابتة ، يجب تشغيل عمليات الترحيل.
تنشئ السقالات الديناميكية محتويات وواجهات مستخدم أثناء وقت التشغيل. يمكن استخدام هذه العملية لإنشاء وتعديل وحذف الإجراءات في تطبيق ريلز.
ما هي مكتبة الفصل؟
تضم مكتبة الفئة مجالات في Ruby on Rails ، وتعد برمجة الخيوط وأنواع البيانات أمثلة على هذه المجالات. تسمح مكتبة الفئة للمطور بإنشاء تجريد للكود وبالتالي استخدام نفس المنطق في عناصر مختلفة في التطبيق.
وصف الرابطة متعددة الأشكال في القضبان
تعد الرابطة متعددة الأشكال نوعًا من جمعية السجل النشط. يعني تعدد الأشكال أن الكائن يمكن أن يكون له أشكال عديدة. في سياق ريلز ، تتيح لك رابطة تعدد الأشكال تحديد نموذج واحد يمكن ربطه بنماذج أخرى أو ينتمي إليها دون كتابة كود متكرر.
ما هو String Interpolation في روبي؟
String Interpolation هو إضافة عناصر نائبة تشير إلى قيم أخرى في كائن سلسلة. استخدام عامل الجمع هو أبسط طريقة لاستيفاء القيم.
ضع في اعتبارك هذا المثال:
name = "Titus" puts "Hello " + name
سيكون الإخراج ؛
مرحبا تيتوس
ما هو نموذج علاقة الكائن (ORM)؟
ORM هو جسر بين قواعد البيانات والبرامج الموجهة للكائنات. تشير علاقة الكائن ، في ريلز ، إلى الوقت الذي يتم فيه تعيين الفئات إلى جدول داخل قاعدة البيانات الخاصة بك.
اشرح هجرة ريلز
تساعد عمليات الترحيل المطورين على إجراء تغييرات على مخطط قاعدة البيانات بشكل ملائم. وبالتالي يمكن للمطورين إدارة الطرح والتراجع في مخطط قاعدة البيانات في بيئة يتم التحكم فيها. يمنعك هذا الأسلوب من إدارة البرامج النصية الفردية لـ SQL لتعريف التغييرات التي أجريتها.
اشرح اصطلاح التسمية في ريلز
- الفئة والوحدة: استخدم الحالة المختلطة ولكن ليس لديك شرطة سفلية. تبدأ الأسماء في الفصول والوحدات بحرف كبير.
- جدول قاعدة البيانات: يجب أن يكون اسم جدول قاعدة البيانات بصيغة الجمع وحالة الثعبان.
- المتغيرات: يجب أن تكون الأحرف التي تعلن عن المتغيرات بأحرف صغيرة و snake_case مع شرطة سفلية تفصل بينهما.
- النموذج: استخدم الحالة المختلطة لتحديد نموذج والتأكد من أن الاسم في صيغة المفرد.
- أجهزة التحكم: يتم جمع أسماء أجهزة التحكم.
ما الفرق بين السلسلة والنص في ريلز؟
: السلسلة مناسبة عندما تريد تخزين نص قصير يصل إلى 255 حرفًا. يمكنك استخدامه مع الأسماء وأسماء المستخدمين ورسائل البريد الإلكتروني وكلمات المرور والعناوين.
: النص يناسب الأوصاف الطويلة. أمثلة رائعة للتعليقات على منشور مدونة أو وصف متجر.
class CreatePosts < ActiveRecord::Migration def self.up create_table:posts do |t| t.string:description t.text :content end end
شرح تزوير طلب عبر المواقع (CSRF)
التزوير عبر الموقع (CSRF) هو هجوم عبر الإنترنت حيث يقوم المهاجم بفخاخ المستخدمين المصادق عليهم لتنفيذ إجراءات معينة نيابة عنهم.
تتطلب ريلز من المطورين إضافة “protect_from_forgery” إلى ApplicationController لتجنب هجمات CSRF. سيطلب التطبيق دائمًا رمز CSRF مميزًا لمصادقة المستخدم.
اشرح ما هو mixin في ريلز
يقدم mixin طريقة مضبوطة لإضافة وظائف إلى الفصل. العديد من الخلطات المختلفة تشكل فصلًا دراسيًا. تقضي Mixins على الحاجة إلى تعدد الميراث.
ما فائدة الحمل والمطلوب في روبي؟
يتطلب () لاستيراد المكتبات / الأحجار الكريمة
يتم استخدام load () لتنفيذ كتلة من التعليمات البرمجية
ما هو الفرق بين الاسترجاعات والمراقبين في روبي أون ريلز
يتم استخدام مراقبي القضبان عندما لا تكون الطريقة مرتبطة مباشرة بدورة حياة الكائن. دورات حياتها كبيرة ، ويمكن ربطها أو فصلها في أي وقت.
لا يمكن استدعاء عمليات الاسترجاعات إلا في حالات محددة في دورة حياة الكائن. أمثلة على هذه الحالات هي التحديثات ، والإنشاء ، والتحقق من الصحة. عمليات رد الاتصال نشطة فقط لفترات قصيرة.
ما هي المسخرات والتركيبات في روبي؟
تشير التركيبات إلى طريقة لتنظيم البيانات التي تريد اختبارها. يمكن إنشاؤها في ملفات تنتهي بامتداد .yml.
الأحزمة هي البيئة أو عداء الاختبار لإجراء اختبارات ريلز. يتم إعداد التركيبات في يسخر.
ما هو الفرق بين تمديد و تضمين؟
يضيف “Include” طريقة مثيل إلى فئة. وبالتالي سيتم الوصول إلى الرمز عبر طرق الفصل.
يضيف “Extend” طرق المثيل المحددة في الوحدة النمطية إلى الفئة الموسعة.
هل الأحجار الكريمة والمكونات الإضافية هي نفسها في روبي؟
الجواهر عبارة عن تطبيقات روبي معبأة تحتاج إلى التثبيت. إنها ذات أغراض عامة ولا تعتمد على ريلز للوظائف.
يتم نشر المكونات الإضافية في Ruby on Rails مع تطبيق Rails الخاص بك. يقومون بتعديل أو إضافة الوظائف الأساسية لـ Rails.
من هم مراقبو السكك الحديدية؟
يقدم مراقب ريلز آلية حيث يقوم كائن بإعلام الآخرين عندما تتغير حالته. إنه قابل للتطبيق في علاقة رأس بأطراف مثل أنه عندما يتغير كائن واحد ، يتم إبلاغ جميع الكائنات التابعة وتغييرها تلقائيًا.
ما الأمر المستخدم لإنشاء الترحيل؟
bin/rails db:migrate
أظهر كيفية تحديد الفئة والمثيل والمتغيرات العامة في روبي
- متغيرات الفئة: يمكن استخدامها في أي مكان داخل فئتها. يمكن لأحفاد الفصل أيضًا الوصول إليها. يبدأون بـ.
- متغيرات المثيل: تُستخدم في النطاق المحلي الخاص بمثيلات الكائن الذي تم إنشاؤه. قد تختلف من كائن إلى آخر. يبدأون بـ @.
- المتغيرات العالمية: يمكن الوصول إليها في أي مكان داخل البرنامج. يبدأ بـ $.
ما هو الدور الذي يلعبه ملف rakefile في الدليل التجريبي في Ruby؟
يساعد Rakefile في اختبار وتعبئة كود ريلز. يحدد الملف المهام التي تقوم بإجراء الاختبارات أو توضح ميزات التطبيق.
ما هي مكنسة في ريلز؟
تعمل الكناس كجهات إنهاء في التخزين المؤقت. هم بمثابة مرشحات نصف ونصف مراقبين وتنفيذ عمليات الاسترجاعات لكلا الدورين. يعثر “expire_cache” على جميع أجزاء ذاكرة التخزين المؤقت التي يجب أن تنتهي صلاحيتها ويمسحها ،
ما هي المرشحات؟
هذه هي الطرق “قبل” ، أو “بعد” تنفيذ عمل وحدة التحكم. يتم توريث هذه الأساليب وسيتم تشغيلها مع كل طلب يتلقاها تطبيقك طالما قمت بتعيينها في ApplicationController.
ميّز بين إعادة التوجيه والعرض في ريلز
Render: يُستخدم لتقديم نموذج ثم إرساله إلى العميل استجابةً للطلب. يقوم هذا القالب بعد ذلك بإنشاء الصفحة التي سيعرضها المتصفح.
إعادة التوجيه: يرسل طلب HTTP جديدًا إلى عنوان URL مختلف. يقوم هذا الإجراء بإعادة توجيه العميل إلى وحدة تحكم أو إجراء مختلف. تكون هذه الطريقة مفيدة عندما تريد تغيير عنوان URL الذي يراه العملاء على المتصفح.
ميّز بين استدعاء super () و super call
- Super: يرسل رسالة إلى أصل الكائن الحالي لاستدعاء جميع وسيطات الطريقة التي تم استدعاؤها.
- super (): لا ترسل أي حجج إلى الوالد.
ما هو الفرق بين Procs و Blocks؟
- الكتل: جزء من التعليمات البرمجية محاط ببيانات do / end أو أقواس متعرجة. يتم إنشاؤها وتنفيذها في كل مرة يتم فيها استدعاء الطريقة.
- Procs: كتل من التعليمات البرمجية مرتبطة معًا بمجموعة من المتغيرات المحلية. يمكن استدعاء هذا الرمز في سياقات مختلفة ولا يزال يصل إلى المتغيرات.
ما هو الفرق بين التصريحات والطباعة؟
نستخدم يضع عندما نريد طباعة شيء ما على الشاشة. على سبيل المثال،
puts “Hello World!!!”
يطبع مرحبا العالم !!! على الشاشة
نستخدم الطباعة عندما لا نريد إضافة سطر جديد على وحدة التحكم.
print “Hello World!!!”
مخرجات Hello World !!! ، لكن لن يتم إضافة سطر جديد إلى وحدة التحكم.
ما هي المكتشفات الديناميكية؟
تسمح أدوات البحث الديناميكية للمطورين بالبحث عن السجلات في قاعدة بياناتهم دون استخدام استعلامات SQL الأولية. يستخدمون الكلمة الرئيسية find_by ، والتي يتم اتباعها بعد ذلك ليتم البحث عنها.
اشرح كيف تنفذ ريل أياكس
- يتم بدء تشغيل مشغل ، مثل إرسال نموذج أو النقر فوق زر.
- ترسل طريقة JavaScript بيانات المشغل إلى معالج في الخادم.
- يعمل المعالج الموجود على جانب الخادم على البيانات ويرسل HTML إلى عميل الويب.
- يتلقى معالج JavaScript على جانب العميل محتوى HTML ويقوم بتحديث الصفحة الحالية.
اشرح حفر ، وتعويم ، وماكس
- باستخدام طريقة Dig ، يمكنك استخراج القيم من التجزئة أو المصفوفات المتداخلة.
- Float هو نوع بيانات Ruby يمثل أرقامًا حقيقية بدقة الفاصلة العائمة.
- Max هي طريقة يمكن استخدامها مع المصفوفات والتجزئة. تقوم بإرجاع القيمة القصوى في مجموعة من العناصر / القيم.
array = [2, 9, 4, 7, 3] maximum = array.max
ستخرج وحدة التحكم 9 لأنها أكبر رقم.
خاتمة
فيما يلي بعض الأسئلة التي من المحتمل أن تجدها في روبيك القادم من روبي أون ريلز. إذا كنت مهندس برمجيات شامل ، فتحقق من أسئلة المقابلة الخاصة بـ Node.js. تأكد من أنك تفهم الوصف الوظيفي لمهندس ريلز قبل أن تحضر مقابلتك التالية.