أعلى 21 مقابلة مع مطور MEAN Stack أسئلة وأجوبة للمبتدئين وذوي الخبرة
نشرت: 2020-03-09مع اكتساب الرقمنة زخمًا متزايدًا في الصناعة الحديثة ، تتوق الشركات والعلامات التجارية إلى الاستثمار في مواقع الويب والتطبيقات السريعة والديناميكية والفعالة. ومع ذلك ، فإن التوافر الواسع النطاق وإمكانية الوصول إلى تقنيات التطوير يجعلان من الصعب اختيار التكنولوجيا المناسبة لتطوير تطبيقات الويب. في حين أن تطوير المكدس الكامل والواجهة الأمامية والخلفية كان يتصدر طليعة تطوير الويب ، هناك نجم جديد في طور التكوين - MEAN stack.
بشكل أساسي ، مكدس MEAN عبارة عن تقنية مفتوحة المصدر تتضمن أربع تقنيات قائمة على JavaScript بما في ذلك MongoDB و ExpressJS و AngularJS و Node.js (MEAN). من خلال تعلم وإتقان مكدس MEAN ، يمكنك الاستمتاع بامتيازات مجموعة من المجالات لتطوير تطبيقات الويب ومواقع الويب الديناميكية.
قراءة: أسئلة مقابلة مطور Stack كاملة
نظرًا لأن الطلب على MEAN Stack Developers ينمو بشكل مطرد ، في هذا المنشور ، سنتحدث عن الأسئلة الأكثر شيوعًا لمقابلة مكدس MEAN.
لذلك ، دون مزيد من اللغط ، دعنا ندخله مباشرة!
أعلى أسئلة وأجوبة مقابلة مطور MEAN Stack
1. ما هو الغرض من MongoDB؟

MongoDB هو مدير قاعدة بيانات موجه للمستندات مصمم لتخزين كميات كبيرة من البيانات. يحفظ البيانات بتنسيق JSON الثنائي ويطبق مفهوم الجمع والتوثيق. MongoDB عبارة عن قاعدة بيانات NoSQL متعددة الأنظمة الأساسية ومجهزة بأداء عالٍ وقابلية تطوير عالية ومرونة تسمح بالاستعلام والفهرسة بسلاسة.
تعلم كيفية إنشاء تطبيقات مثل Swiggy و Quora و IMDB والمزيد2. ما هو الغرض من ExpressJS؟
ExpressJS هو إطار عمل لتطبيق الويب مصمم لدعم واستضافة مشاريع Node.js. إنه إطار مفتوح المصدر متاح بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. يدير ExpressJS سير العمل بين الواجهة الأمامية وقاعدة البيانات ويسهل النقل السلس والآمن للبيانات. يتميز بمعالجة الأخطاء الممتازة ووظائف تصميم الويب لتحسين عملية تطوير الويب.
3. ما الغرض الذي يخدمه AngularJS؟
AngularJS هو إطار تطوير تطبيقات ويب مفتوح المصدر يتم صيانته بواسطة Google. يسمح لمطوري الويب باستخدام HTML كلغة قالب خاص بهم وتوسيع بناء جملة HTML لتمثيل مكونات تطبيق الويب بوضوح ودقة.
4. ما هي وظيفة Node.js؟
Node.JS هو إطار عمل JavaScript مفتوح المصدر ومتعدد الأنظمة الأساسية يستخدم لتطوير تطبيقات من جانب الخادم والشبكات. إنه العمود الفقري لمكدس MEAN. بصرف النظر عن JavaScript ، استخدم Node.js أيضًا لغات البرمجة C و C ++. تم تجهيز Node.js بخادم ويب متكامل يسهل النشر السلس لقاعدة بيانات MongoDB وتطبيقها السحابي.
5. اسم IDEs التي يتم استخدامها بشكل شائع لتطوير Node.JS؟
أشهر IDE التي يمكن استخدامها لتطوير Node.JS تشمل:
- ذرة
- سحابة 9
- كسوف
- كومودو IDE
- JetBrainsWebStorm
- JetBrains IntelliJ IDEA
6. ما هو النمس؟
Mongoose هو مخطط مستند كائن (ODM) ، مما يعني أنه باستخدام Mongoose ، يمكنك تحديد كائنات بمخطط مكتوب بشدة يمكن تعيينه بشكل أكبر إلى مستند MongoDB. يقدم حلاً قائمًا على المخطط لنمذجة بيانات التطبيق. يأتي Mongoose مزودًا بتلبيس مدمج ، والتحقق من الصحة ، وبناء الاستعلام ، وخطافات منطق الأعمال ، والعديد من الميزات الجاهزة.
قراءة: الفرق بين تطوير المكدس الكامل والمتوسط
7. تحديد نمذجة البيانات؟
نمذجة البيانات هو مصطلح يستخدم في سياق النمس و MongoDB. كما يوحي الاسم ، تشير نمذجة البيانات إلى عملية إنشاء نموذج بيانات للبيانات الموجودة حتى يمكن تخزينها في قاعدة بيانات. نموذج البيانات هو تمثيل مفاهيمي لكائنات البيانات ، والعلاقة بين كائنات البيانات المختلفة ، والقواعد التي تحدد تلك العلاقات.
تساعد نمذجة البيانات على تمثيل البيانات بشكل مرئي مع تطبيق قواعد العمل والامتثال التنظيمي والسياسات الحكومية على البيانات. يتم تنفيذه لضمان الاتساق في اصطلاحات التسمية والقيم الافتراضية والدلالات والأمان وجودة البيانات.
8. ما هو REPL في Node.Js؟
يعد REPL أو "Read Eval Print Loop" برنامجًا بسيطًا يمكنه قبول الأوامر وتقييمها وطباعة النتائج. ما يفعله REPL هو إنشاء بيئة مشابهة لقذيفة Unix / Linux أو وحدة تحكم Window ، حيث يمكنك إدخال الأوامر والنظام ، وسوف تستجيب مع الإخراج. فيما يلي الوظائف التي يؤديها REPL:
- قراءة - يقرأ هذا المدخلات المقدمة من قبل المستخدم ويوزعها في بنية بيانات جافا سكريبت ويخزنها في الذاكرة.
- EVAL - يؤدي هذا إلى تنفيذ بنية البيانات.
- طباعة - يقوم هذا بطباعة النتيجة الناتجة بعد تقييم الأمر.
- LOOP - يؤدي هذا إلى تكرار الأمر أعلاه حتى يضغط المستخدم على Ctrl + C مرتين.
9. تحديد النطاق في JavaScript.
في JavaScript ، تحتوي كل وظيفة على نطاق ، وهو في الأساس مجموعة من المتغيرات والقواعد التي تحدد كيفية وصول اسمها الفريد إلى هذه المتغيرات. لا يمكنك الوصول إلى المتغيرات المحددة في نطاق الوظيفة إلا من خلال الكود الموجود داخل تلك الوظيفة. بينما يجب أن يكون للمتغيرات الموجودة في نطاق معين أسماء فريدة ، يمكن أن يوجد نطاق داخل نطاق آخر. في هذه الحالة ، يمكن لرمز النطاق الداخلي الوصول إلى المتغيرات الموجودة في أي من النطاقات.
10. حدد الفرق بين البحث الخطي والبحث الثنائي.
يأخذ البحث الخطي بعين الاعتبار عنصر القائمة واحدًا تلو الآخر دون القفز التسلسلي. لذلك ، من حيث التعقيد ، فإنه يصنف على أنه بحث O (n) حيث يزداد الوقت المستغرق للبحث في القائمة بشكل متناسب مع الزيادة في القائمة. على عكس ذلك ، يبدأ البحث الثنائي في منتصف القائمة. يهدف هذا البحث إلى معرفة ما إذا كانت قيمة العنصر أكبر من القيمة المطلوبة أو أقل منها.
يحدد هذا أيضًا موضع القيمة في القائمة - سواء كانت في الجزء الأول أو الجزء الثاني من القائمة. من حيث التعقيد ، فإنه يصنف على أنه بحث O (سجل ن) حيث ينمو عدد عمليات البحث ببطء نسبيًا من القائمة. ويرجع ذلك أساسًا إلى تقسيم مساحة البحث إلى نصفين في كل عملية.
بينما يتطلب البحث الثنائي فرز بيانات الإدخال أولاً ، لا تحتوي القائمة الخطية على أي متطلبات مسبقة من هذا القبيل.
11. قم بتمييز الفرق بين Node.js و AJAX و jQuery.
Node.js و AJAX و jQuery كلها تطبيقات متقدمة لجافا سكريبت. ومع ذلك ، لديهم حصة عادلة من الاختلافات.
Node.js عبارة عن نظام أساسي من جانب الخادم يُستخدم لتطوير تطبيقات خادم العميل بينما AJAX ، المعروف أيضًا باسم Javascript و XML هو أسلوب برمجة نصية من جانب العميل يتم استخدامه بشكل أساسي لعرض محتويات الصفحة دون تحديثها. يتم استخدام AJAX بشكل أساسي لعرض المحتوى الديناميكي. jQuery هي وحدة JavaScript النمطية التي تكمل AJAX و DOM traversal و looping. يتم تحميله بالعديد من الوظائف المفيدة للمساعدة في تطوير JavaScript.
12. تعريف حقن التبعية.
Dependency Injection هو مفهوم تصميم برمجي يسمح لك باستخدام أو حقن خدمة بطرق مستقلة عن أي استهلاك للعميل. من خلال القيام بذلك ، فإنك تمنع العميل بشكل أساسي من تعديل التبعيات عندما تتغير الخدمة الأساسية.
الغرض الأساسي من حقن التبعية هو فصل إنشاء تبعيات العملاء عن سلوكهم ، وبالتالي السماح لك بتصميم برامج مقترنة بشكل غير محكم. في برنامج غير محكم الاقتران ، تستهلك المكونات عادةً الوظائف المحددة بواسطة الواجهات دون وجود أي معرفة مسبقة بفئات التنفيذ المستخدمة.

يسمح لك حقن التبعية بتعديل أو تعديل سلوك التطبيق عن طريق تغيير المكونات التي تنفذ الواجهات التي تحدد ميزات التطبيق.
13. تعريف الحاويات.
تعتبر عملية الحاوية بديلاً عن المحاكاة الافتراضية التقليدية للآلة القائمة على برنامج Hypervisor والتي تتضمن تغليف تطبيق في حاوية داخل بيئة التشغيل الخاصة بها. في الحاوية ، بدلاً من استنساخ نظام تشغيل للأجهزة الافتراضية الفردية ، يتم مشاركته بواسطة الحاويات المختلفة. عن طريق تحميل تطبيق في جهاز افتراضي ، يمكنك تشغيل التطبيق على أي جهاز مادي مناسب دون الحاجة إلى القلق بشأن التبعيات.
14. تحديد هرم اختبار. كيف يمكنك تحقيق هرم اختبار عند مناقشة واجهات برمجة تطبيقات HTTP؟
عادةً ما تكون تطبيقات الويب المكدسة كبيرة ومعقدة. وهي مصممة لتوسيع وظائفها لخدمة مئات المتطلبات المختلفة لملايين المستخدمين. وبالتالي ، مع زيادة حجم قاعدة التعليمات البرمجية كاملة المكدس وزيادة عدد المستخدمين ، تتصاعد أيضًا تكلفة التعامل مع الأخطاء. ومع ذلك ، يمكن التخفيف من ذلك بنجاح من خلال تطبيق مفهوم هرم الاختبار على قاعدة التعليمات البرمجية الخاصة بك.
يتضمن نهج هرم الاختبار طريقة جذرية في التفكير في كيفية استخدام أنواع مختلفة من الاختبارات الآلية لإنشاء محفظة متوازنة. وتؤكد أن عدد اختبارات الوحدة منخفضة المستوى يجب أن يكون أكثر بكثير من اختبارات BroadStackTest عالية المستوى التي يتم تشغيلها عبر واجهة المستخدم الرسومية.
عند مناقشة واجهات برمجة تطبيقات HTTP ، يمكنك تحقيق هرم اختبار باتباع الخطوات المذكورة أدناه:
- قم بدمج الكثير من اختبارات الوحدة منخفضة المستوى لنموذجك.
- قم بتضمين عدد أقل من اختبارات الانضمام المستخدمة لتحديد كيفية تعاون النماذج الخاصة بك مع بعضها البعض.
- قم بتضمين عدد أقل من اختبارات الإقرار المستخدمة لاختبار نقاط نهاية HTTP الأصلية.
15. ما الغرض من خدمة الفهارس في MongoDB؟
في MongoDB ، تُستخدم الفهارس لدعم وتسهيل التنفيذ الفعال للاستعلامات. بدون فهارس ، يتعين على MongoDB إجراء مسح للمجموعة حيث يتعين عليها مسح كل مستند في مجموعة وتحديد المستندات المناسبة التي تتطابق مع بيان الاستعلام. ومع ذلك ، إذا كان لكل استعلام فهرس مناسب مخصص له ، فيمكن لـ MongoDB استخدام الفهرس للحد من عدد المستندات التي يتعين عليه فحصها.
16. ما هو الفرق بين Classes و Interfaces في TypeScript؟
الفئات والواجهات عبارة عن هياكل تعزز كلاً من البرمجة الموجهة للكائنات وأيضًا التحقق من الكتابة في TypeScript. في حين أن الفصل عبارة عن مخطط يمكنك من خلاله إنشاء مجموعة من الكائنات تشترك في نفس التكوين (الخصائص والأساليب) ، فإن الواجهة هي مجموعة من الخصائص والأساليب ذات الصلة التي تصف كائنًا. ومع ذلك ، لا توفر الواجهة التنفيذ أو التهيئة للكائنات.
عادةً ما تحدد الفئة الشكل الذي يجب أن يبدو عليه الكائن ويتصرف مثله ، وبناءً على ذلك ، فإنها تنشئ مخططًا وتنفيذه عن طريق تهيئة خصائص الفئة وتحديد الطرق. الفصول موجودة في جميع مراحل الكود. الواجهة ، من ناحية أخرى ، هي بنية افتراضية موجودة فقط في سياق TypeScript. يستخدم مترجم TypeScript واجهات خاصة لفحص النوع.
17. عرّف "Decorators" في TypeScript.
في TypeScript ، يشير Decorator إلى نوع خاص من التصريح يتم إرفاقه عادةً بإعلان فئة أو طريقة أو ملحق أو خاصية أو معلمة. الزخرفة هي وظائف تأخذ هدفها كحجة. إنها تسمح لك بتشغيل تعليمات برمجية عشوائية حول التنفيذ المستهدف أو حتى استبدال الهدف بتعريف جديد تمامًا.
18. ما هو المقصود ب "رد الاتصال" في Node.js؟
في Node.js ، رد الاتصال هو مكافئ غير متزامن لدالة. يعتمد Node.js بشكل كبير على عمليات الاسترجاعات التي يتم استدعاؤها عند ذروة أو إكمال مهمة معينة. على سبيل المثال ، لنفترض أن الوظيفة المصممة لقراءة الملفات قد تبدأ في قراءة الملفات وتعيد عنصر التحكم على الفور إلى بيئة التنفيذ لتسهيل تنفيذ التعليمات التالية.
بمجرد اكتمال إدخال / إخراج الملف ، يتم ضبط وظيفة رد الاتصال وتمرير محتوى الملف كمعامل. هذا يضمن عدم وجود حظر أو انتظار لملف الإدخال / الإخراج. هذه الميزة هي التي تجعل Node.js قابلاً للتوسع بدرجة كبيرة حيث يمكنها معالجة عدد كبير من الطلبات دون انتظار نتائج أي وظيفة.
تتم كتابة جميع واجهات برمجة تطبيقات Node بطرق تتيح لها دعم عمليات الاسترجاعات.
19. تحديد البرمجة عبر المواقع (XSS).
البرمجة النصية عبر المواقع (XSS) هي هجوم حقن التعليمات البرمجية من جانب العميل حيث يتم تنفيذ البرامج النصية الضارة في مستعرض ويب عن طريق تضمين تعليمات برمجية ضارة في صفحة ويب أو تطبيق ويب شرعي. يمكن أن يحدث أيضًا عندما ينقر الفرد على روابط غير موثوقة يمكنها تمرير ملفات تعريف الارتباط وغيرها من المعلومات الحساسة إلى المهاجمين.
يحدث الهجوم عند زيارة صفحة ويب أو تطبيق ويب يقوم بتنفيذ تعليمات برمجية ضارة. وبالتالي ، تصبح صفحة الويب أو تطبيق الويب وسيلة لتوصيل البرامج النصية الخبيثة إلى متصفح المستخدم.
أكثر الوسائل شيوعًا لاستخدامها في هجمات البرمجة النصية عبر المواقع هي المنتديات ولوحات الرسائل وحتى صفحات الويب التي تشجع المستخدمين على التعليق.
20. تحديد AOT واذكر فوائدها.
تحتوي التطبيقات الزاوية على قوالب HTML جنبًا إلى جنب مع المكونات القياسية. نظرًا لأن المتصفح لا يمكنه فهم هذه المكونات وقوالب HTML بشكل مباشر ، يجب تجميع تطبيقات Angular أولاً قبل أن تتمكن من تشغيلها في المستعرض.
يقوم مترجم Angular المسبق (AOT) بتحويل Angular HTML و TypeScript code إلى كود JavaScript أثناء مرحلة البناء قبل أن يتمكن المتصفح من تنزيل الكود وتشغيله. من خلال تجميع تطبيق Angular في مرحلة الإنشاء ، فإنك تشجع على التشغيل الأسرع لتطبيقات Angular في المتصفح.

فوائد استخدام مترجم AOT هي:
- باستخدام AOT ، يمكن للمتصفح تنزيل نسخة مجمعة مسبقًا من التطبيق. يقوم المتصفح بتنزيل التعليمات البرمجية القابلة للتنفيذ حتى يتمكن من عرض تطبيق Angular على الفور ، دون انتظار ترجمة التطبيق أولاً.
- بفضل AOT ، يقوم المترجم بتضمين قوالب HTML الخارجية وأوراق أنماط CSS داخل تطبيق JavaScript ، وبالتالي يلغي طلبات AJAX المنفصلة لملفات المصدر.
- أثناء مرحلة البناء نفسها ، يقوم مترجم AOT باكتشاف أي أخطاء في ربط القالب والإبلاغ عنها.
- نظرًا لأن AOT يجمع قوالب HTML ومكوناتها في ملفات JavaScript قبل تقديمها للعملاء ، فلا يوجد المزيد من القوالب لقراءتها ولا حتى تقييم HTML / JavaScript محفوف بالمخاطر من جانب العميل. هذا يقلل من احتمالات هجمات الحقن.
21. ما هو نظام الشبكة في CSS؟
في CSS ، نظام الشبكة عبارة عن بنية تُستخدم لتكديس المحتوى عموديًا وأفقيًا بطريقة متسقة ويمكن التحكم فيها. تحتوي أنظمة الشبكة على مكونين أساسيين - الصفوف والأعمدة. تتضمن بعض أنظمة الشبكات الأكثر استخدامًا Simple و Pure و Flexbox و Bootstrap و Foundation.
خاتمة
هذه هي قائمة الأسئلة والأجوبة الخاصة بمقابلة مطور MEAN المكدسة. نأمل أن يساعدك هذا في إجراء مقابلة مكدس MEAN القادمة!
يعد إتقان اللغات والأدوات الكاملة أمرًا مهمًا لتصبح مطورًا متوسطًا للمكدس. إن رحلة كونك مطورًا متكاملًا هي رحلة صعبة ولكنها مجزية أيضًا. تجعل الفرص الإبداعية والمالية حقًا هذه واحدة من أفضل الوظائف المتاحة ، حيث يوجد لدى المرء شغف لمتابعتها. إذا كان لديك شغف لإنشاء روبوتات محادثة ذكية ومحافظ للتكنولوجيا المالية وغير ذلك ، فراجع دورة PG لتطوير البرامج المتكاملة من upGrad.