منذ 5 ساعات
أهلا بك عزيزي المتابع لموقع (journey for learn) نقدم دورات بكوبونات متاحة لاول 1000 تسجيل مجاني فقط وكوبونات اخري لفترة محدودة فاذا كنت تريد ان تحصل علي كل الكورسات علي موقعنا وان تكون اول المسجلين في الكورسات المجانية قم بتسجيل الدخول أوقم بالدخول علي وسائل التواصل الاجتماعي وخصوصا التليجرام نوضح الوصف المختصر والطويل للدورات لكي تعرف الدروس التي سوف تتعلمها بسهولة ويسر :
تغطية تفصيلية لنطاق الاختبار تم تصميم بنك الأسئلة الشامل هذا ليعكس التوزيع الفني الدقيق الموجود في المقابلات الهندسية الحديثة لأدوار Django المتوسطة إلى العليا.- أساسيات Django (15%): هياكل دليل مشروع Django القياسية، وتعريفات نماذج Django الأساسية، وعرض قوالب Django، وطرق عرض Django الوظيفية والمستندة إلى الفصل، وتوجيه عناوين URL المعقدة لـ Django.
- نماذج Django وقاعدة البيانات (20%): أنماط توريث النماذج (مجردة، متعددة الجداول، الوكيل)، معاملات قاعدة البيانات ذات المستوى المنخفض، وظروف السباق ومشكلات التزامن، واستعلامات ORM المعقدة، وتحسينات مخطط قاعدة البيانات المتقدمة.
- أمان ومصادقة جانغو (18%): الواجهات الخلفية لمصادقة المستخدم المخصصة، وأنظمة الأذونات على مستوى الكائن، وآليات تجزئة كلمات المرور الآمنة، ومنع حقن SQL المضمن، وحماية البرمجة النصية عبر المواقع.
- قوالب جانغو والواجهة الأمامية (12%): بناء جملة القالب المتقدم، وتخطيطات وراثة القالب الهيكلي، وإدارة قوية لإنتاج الملفات الثابتة، وتكامل CSS وجافا سكريبت، واستراتيجيات تكامل إطار عمل الواجهة الأمامية الحديثة.
- موضوعات Django المتقدمة (15%): الإشارات المتزامنة وغير المتزامنة، ومسارات البرامج الوسيطة المخصصة، واستراتيجيات التخزين المؤقت متعددة الطبقات، وإعدادات تسجيل المؤسسة، ومعالجة الأخطاء العالمية على مستوى الإطار.
- أفضل ممارسات Django وأنماط التصميم. (10%): تنظيم أكواد التطبيقات القابلة للتطوير، والحفاظ على إمكانية قراءة التعليمات البرمجية، وإستراتيجيات الاختبار الشاملة، وإعدادات التكامل المستمر، واستراتيجيات النشر السحابي.
- أدوات ومكتبات Django (5%): أوامر مسؤول Django الأصلية، وأوامر إدارة Django المخصصة، والتكامل مع مكتبات الجهات الخارجية المهمة، وتكامل REST API الخارجي، وأدوات ترحيل قاعدة البيانات الآلية.
- استكشاف أخطاء Django وإصلاحها وتصحيح الأخطاء (5%): تقنيات تصحيح أخطاء ملف تعريف الذاكرة، وفك التشفير رسائل خطأ إطار عمل غامضة، وتحليل السجل المنظم، وتحديد اختناقات الأداء، واستكشاف المشكلات الشائعة وإصلاحها.
- أ) تنفيذ Select_available() لإنشاء قفل ذاكرة تخزين مؤقت داخلي أثناء استرداد البيانات.
- ب) استخدام prefetch_dependent() مع معالج إشارة ذرية مخصص.
- ج) استدعاء QuerySet. حدد_for_update() داخل معاملة صريحة. كتلة سياق atomic().
- د) تنفيذ QuerySet.defer() لعزل الحقول الرقمية عن مثيلات النموذج القياسي.
- هـ) تطبيق المعاملة. set_rollback(True) مباشرة قبل تشغيل عملية الحفظ.
- F) إرجاع بنية وراثة النموذج من فئة أساسية مجردة إلى وراثة الجداول المتعددة.
- الإجابة الصحيحة: C
- لماذا هي صحيحة: تقوم Select_for_update() بإرجاع QuerySet الذي يقوم بتأمين الصفوف حتى يتم الالتزام بالمعاملة المحتوية أو التراجع عنها. عندما يقترن بمعاملة.atomic()، فإنه ينفذ عبارة SELECT... FOR UPDATE SQL ضمن الغطاء، مما يضمن أن عمليات قاعدة البيانات المتزامنة يجب أن تنتظر حتى تحرر العملية النشطة القفل، مما يمنع بشكل فعال حالات السباق والتحديثات المفقودة.
- لماذا تكون الخيارات البديلة غير صحيحة:
- الخيار أ غير صحيح: Select_dependent() هي مجرد أداة لتحسين الأداء تنفذ صلة SQL لتقليل عدد الاستعلامات؛ فهو لا يفرض أي أقفال لقاعدة البيانات.
- الخيار B غير صحيح: prefetch_dependent() يتعامل مع علاقات المفاتيح الخارجية متعددة الأطراف وعكسها عبر استعلامات منفصلة ولا يقفل البيانات من أجل أمان الكتابة.
- الخيار D غير صحيح: defer() يتجنب ببساطة تحميل بيانات حقل معينة من قاعدة البيانات في البداية لتوفير الذاكرة؛ ليس لديه تحكم في المعاملات.
- الخيار E غير صحيح: set_rollback(True) يفرض على المعاملة النشطة التراجع عند الاكتمال، مما ينهي المعاملة بدلاً من حل الوصول للكتابة المتزامنة.
- الخيار F غير صحيح: تملي إستراتيجيات وراثة النموذج تكوين تخطيط مخطط قاعدة البيانات ولكنها لا تدير أقفال قاعدة البيانات في وقت التشغيل أو تزامن المعاملات.
- أ) يتم تجاهل فئات البرامج الوسيطة الموجودة في آخر مصفوفة التكوين تمامًا أثناء مرحلة الطلب القياسي.
- ب) تقوم مرحلة الطلب بمعالجة البرامج الوسيطة من الأعلى إلى الأسفل؛ يسمح وضع اختبارات الأمان أخيرًا لمنطق المعالجة أو دقة العرض المبكر بتجاوز الفحص بالكامل.
- ج) يتم تقييد عمليات التحقق من الأمان بواسطة إطار العمل بحيث يتم تنفيذها فقط داخل الإعداد القديم لـ MIDDLEWARE_CLASSES.
- د) يتم تنفيذ مرحلة الاستجابة من أعلى إلى أسفل، مما يتسبب في قيام مكون البرنامج الوسيط النهائي بحظر إخراج العرض.
- هـ) يؤثر ترتيب الموضع فقط على مرحلة التهيئة لأوامر إدارة Django، وليس HTTP النشط حركة المرور.
- F) يتم ترتيب تسلسل تنفيذ البرامج الوسيطة بشكل عشوائي تمامًا بواسطة Django ما لم يتم تعيين تبعيات صريحة داخل ملف الترحيل.
- الإجابة الصحيحة: ب
- لماذا هذا صحيح: يعالج Django طلبات HTTP الواردة بشكل تسلسلي من أعلى إلى أسفل من خلال قائمة تكوين MIDDLEWARE. إذا تم وضع مكون برمجية وسيطة للمصادقة أو الأمان في الأسفل، فسيتم تنفيذ أي برمجية وسيطة أو أدوات تزيين للعرض مُعلنة فوقه أولاً. إذا قام أحد المكونات الأولية بمعالجة الطلب أو تحييده مبكرًا، فسيتم تجاوز فحص الأمان السفلي بالكامل. يجب دائمًا وضع منطق الأمان بالقرب من الأعلى.
- لماذا الخيارات البديلة غير صحيحة:
- الخيار أ غير صحيح: لم يتم تجاهل البرامج الوسيطة بالكامل؛ إنه ببساطة يتم تنفيذه في آخر دورة الطلب، وهو ما يعد متأخرًا جدًا لحماية العمليات السابقة.
- الخيار C غير صحيح: MIDDLEWARE_CLASSES هو نمط تكوين قديم تم استبداله بـ MIDDLEWARE في إصدارات Django الحديثة؛ تؤدي محاولة استخدامه إلى ظهور أخطاء.
- الخيار د غير صحيح: تعمل مرحلة الاستجابة بترتيب عكسي — من الأسفل إلى الأعلى — مما يعني أن العنصر السفلي يعالج الاستجابات أولاً، وليس الطلبات.
- الخيار E غير صحيح: يفرض ترتيب البرامج الوسيطة بشكل كبير توجيه الويب النشط وحلقات طلب/استجابة HTTP، في حين أنه لا يؤثر على تهيئة الأوامر الثابتة.
- الخيار F غير صحيح: مسار التنفيذ حتمي تمامًا ويلتزم بشكل صريح بفهرس القائمة تحديد الموضع داخل ملف تكوين الإعدادات.
- أ) Profile.objects.all().defer('company').only('skills')
- ب) Profile.objects.all().select_dependent('company').prefetch_dependent('skills')
- C) Profile.objects.all().annotate('company').aggregate('skills')
- D) Profile.objects.all().using('company').filter('skills')
- E) Profile.objects.all().select_dependent('skills').prefetch_dependent('company')
- F) Profile.objects.all().raw("SELECT * FROM Profile_table")
- الإجابة الصحيحة: ب
- لماذا هي صحيحة: للتخلص من حمل استعلام N+1، يجب عليك جلب البيانات ذات الصلة مسبقًا. تعمل وظيفة التحديد_ذات الصلة () عن طريق تنفيذ SQL JOIN وهي مثالية للعلاقات ذات القيمة الواحدة مثل المفتاح الخارجي للشركة. على العكس من ذلك، يقوم prefetch_dependent() بإجراء استعلام بحث منفصل للعلاقات متعددة القيم مثل حقل مهارات متعدد إلى متعدد ويتعامل مع الانضمام في الذاكرة. يؤدي الجمع بينهما إلى حل اختناقات الأداء في استعلامين بالضبط.
- لماذا تكون الخيارات البديلة غير صحيحة:
- الخيار A غير صحيح: يتحكم defer() و Only() في الأعمدة التي يتم تحميلها في الذاكرة لمثيل النموذج الهدف ولكن لا تمنع استعلامات N+1 عبر النماذج ذات الصلة.
- الخيار C غير صحيح: يضيف التعليق التوضيحي () الحقول المحسوبة إلى مجموعات الاستعلام ويقلل التجميع () مجموعات الاستعلام إلى قيم ملخصة؛ لا يعمل أي منهما على تحسين عمليات البحث في الجداول المتعددة.
- الخيار D غير صحيح: تحدد الطريقة use() كلمة رئيسية بديلة لتوجيه قاعدة البيانات ولا يمكنها دمج سياقات جدول منفصلة معًا.
- الخيار E غير صحيح: يؤدي هذا إلى تبديل الوظائف. يؤدي تمرير علاقة متعدد إلى متعدد مثل المهارات إلى تحديد_ذات الصلة () إلى ظهور خطأ بحث غير صالح لأنه لا يمكن حله باستخدام صلة SQL مسطحة.
- الخيار F غير صحيح: سيؤدي الإسقاط في استعلام SQL غير محسن بدون صلات أو تعيينات معينة إلى إعادة تشغيل حلقة N+1 نفسها أثناء تسلسل النموذج.
- مرحبًا بك في اختبارات أسئلة المقابلة لمساعدتك في الاستعداد للاختبار التدريبي على أسئلة مقابلة Django.
- يمكنك إعادة إجراء الاختبارات عدة مرات كما تريد
- هذا بنك أسئلة أصلي ضخم
- يمكنك الحصول على دعم من المدرسين إذا كانت لديك أسئلة
- يحتوي كل سؤال على شرح مفصل
- متوافق مع الهاتف المحمول مع تطبيق Udemy
ما هي المتطلبات الأساسية لدخول الدورة والتسجيل فيها على موقعنا؟ رحلة التعلم:
(احصل على الدورة للدخول إلى الموقع والتسجيل)
يجب أن يكون لديك بريد إلكتروني (حساب بريد) تتذكره لنفسك وأيضًا يجب أن تتذكر كلمة مرور البريد الإلكتروني الذي ستسجل به ، وإذا لم يكن لديك حساب بريد إلكتروني ، فمن الأفضل إنشاء حساب (Gmail)
0 تعليقات
تسجيل دخول
دورات مشابهة