أهم 30 سؤالاً وجواباً في مقابلات تصميم الأنظمة (2026)

أسئلة وأجوبة مقابلة تصميم النظام

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

يُتيح الإعداد الجيد فرص عمل في مختلف منصات الحوسبة السحابية، والأنظمة الموزعة، وهندسة البيانات، مُثبتًا الخبرة التقنية من خلال التحليل العملي. يكتسب المحترفون العاملون في هذا المجال مهارات عملية، ويدعمون الفرق، ويساعدون المدراء على اتخاذ القرارات، ويجيبون على الأسئلة الشائعة التي تتراوح بين المبتدئين والخبراء، بما في ذلك الجوانب التقنية المتقدمة والأساسية على مستوى العالم اليوم.
اقرأ أكثر…

👈 تحميل مجاني لملف PDF: أسئلة وأجوبة مقابلات تصميم الأنظمة

أهم أسئلة وأجوبة مقابلة تصميم النظام

1) اشرح ما هو تصميم النظام ولماذا هو مهم في هندسة البرمجيات.

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

في المقابلات، يُظهر هذا قدرتك على تحقيق التوازن المتطلبات الوظيفية مع القيود غير الوظيفية مثل قابلية التوسع، وزمن الاستجابة، والاتساق، والتوافر. تقوم جميع شركات التكنولوجيا الكبرى بتقييم مهارات تصميم الأنظمة لدى المرشحين لقياس قدرتهم على اتخاذ قرارات هندسية واقعية.


2) كيف يمكنك التمييز بين التصميم عالي المستوى (HLD) والتصميم منخفض المستوى (LLD) في بنية النظام؟

يركز التصميم عالي المستوى (HLD) على نظرة عامة معمارية والمكونات الرئيسية دون الخوض في تفاصيل التنفيذ. يوضح ذلك كيفية تفاعل الأنظمة - على سبيل المثال، خادم الويب, قاعدة بيانات, مخبأ, بوابة APIو أنظمة الرسائل.

يتعمق التصميم منخفض المستوى (LLD) في تعريفات الفئات، والأساليب، وهياكل البيانات، والمنطق التفصيلي داخل كل مكون. يركز التصميم عالي المستوى (HLD) على المكونات التي ستستخدمها وكيفية تفاعلها؛ بينما يركز التصميم منخفض المستوى (LLD) على كيفية تنفيذ هذه التفاعلات. يساعد فهم كلا النوعين القائمين على المقابلة في تقييم قدرتك على التفكير الشامل بالإضافة إلى قدراتك الهندسية التفصيلية.


3) ما هي مؤشرات الأداء الرئيسية التي يجب مراعاتها عند تصميم نظام ما، ولماذا؟

تساعد مقاييس الأداء في تحديد مدى تلبية النظام لاحتياجات المستخدمين والشركات. أهم هذه المقاييس هي:

  • الكمون: الوقت المستغرق لمعالجة طلب واحد. انخفاض زمن الاستجابة يعني استجابات أسرع.
  • الإنتاجية: كمية العمل المُعالَج خلال فترة زمنية محددة (مثلاً، عدد الطلبات في الثانية). تشير الإنتاجية العالية إلى كفاءة أعلى في ظل ضغط العمل.
  • المخزون: نسبة الوقت الذي يكون فيه النظام قيد التشغيل. يُعدّ التوافر العالي أمراً بالغ الأهمية للخدمات العالمية.

تساعد هذه المقاييس المصممين على تحقيق التوازن بين المزايا والعيوب. على سبيل المثال، يقلل التخزين المؤقت من زمن الاستجابة ولكنه يُعقّد عملية اتساق البيانات. يُظهر الإلمام بهذه المقاييس اهتمامك بجودة النظام في الواقع العملي.

متري تعريف أهمية
كمون الوقت لكل طلب تجربة المستخدم
الإنتاجية عدد الطلبات لكل وحدة زمنية التوسعة
التوفر وقت التشغيل مقابل وقت التوقف الموثوقية

4) صف موازنة الأحمال ولماذا تعتبر بالغة الأهمية في الأنظمة الموزعة.

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

توجد أنواع مختلفة من موازنات الأحمال. الطبقة 4 (L4) يعمل موازن الجهد على مستوى طبقة النقل (IP/المنفذ)، بينما الطبقة 7 (L7) يعمل موازن الأحمال على مستوى التطبيق، ويفهم دلالات بروتوكول HTTP/S. يُعدّ موازنة الأحمال أمرًا بالغ الأهمية لضمان تحمّل الأعطال، والتوسع دون توقف، والتحديثات التدريجية في أنظمة الإنتاج. يُظهر فهمك الجيد لهذا السؤال مدى إلمامك بالمفاضلات الأساسية في الأنظمة الموزعة بين الأداء والاتساق والتكلفة.


5) كيف ستصمم جهاز Tiny؟URL الخدمة؟ صف المكونات والخطوات الأساسية.

تصميم صغيرURL تشمل الخدمة كلاً من المتطلبات الوظيفية (الاختصار) URL(إعادة توجيه المستخدمين) والمتطلبات غير الوظيفية (قابلية التوسع، والتفرد، والأداء).

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

  • طبقة واجهة برمجة التطبيقات (API): يستقبل طلبات الاختصار/إعادة التوجيه ويعالجها.
  • قاعدة البيانات والتخزين المؤقت: يخزن النسخة الأصلية ↔ النسخة المختصرة URL رسم خريطةpingيؤدي التخزين المؤقت إلى تحسين أداء القراءة.
  • مولد المعرفات المختصرة: يستخدم التجزئة أو المعرفات الفريدة المشفرة بالأساس.

لإنشاء مفاتيح فريدة بكفاءة، يمكنك القيام بما يلي:

  • استعمل ترميز القاعدة 62 معرف تسلسلي (على سبيل المثال، 1 → أ، 2 → ب، إلخ).
  • إستخدم دالة تجزئة مع حل التصادم.

ينبغي عليك أيضًا مراعاة التحليلات، وحدود المعدل، ومعالجة الطلبات الساخنة. URLباستخدام طبقات التخزين المؤقت أو شبكات توصيل المحتوى (CDN) لتقليل الحمل. يُظهر وصف هذه المفاضلات عمقًا في كل من أنماط التصميم واعتبارات قابلية التوسع.


6) ما هو التخزين المؤقت، وكيف يحسن أداء النظام؟

متاجر التخزين المؤقت البيانات التي يتم الوصول إليها بشكل متكرر أو البيانات التي تتطلب تكلفة حسابية عالية في وسيط تخزين أسرع (الذاكرة، ذاكرة التخزين المؤقت الموزعة) لتقليل عمليات الحساب المتكررة وحمل قاعدة البيانات. وهذا يحسن بشكل كبير زمن الاستجابة والإنتاجية من خلال تلبية الطلبات الشائعة بسرعة.

يمكن أن يحدث التخزين المؤقت على مستويات متعددة: ذاكرة التطبيق، Redis/Ehcacheخوادم الحافة لشبكة توصيل المحتوى (CDN)، أو التخزين المحلي للمتصفح. مع أن التخزين المؤقت يقلل أوقات الاستجابة، إلا أنه يُسبب مشاكل في تقادم البيانات وإبطال صلاحيتها، والتي يجب معالجتها أثناء التصميم. على سبيل المثال، يمكنك استخدام سياسات مدة البقاء (TTL) أو استراتيجيات إبطال صلاحية ذاكرة التخزين المؤقت عند تغيير البيانات الأساسية. تُظهر الإجابات الجيدة فهمك لكليهما الفوائد والمزالق التخزين المؤقت.


7) اشرح نظرية CAP وتأثيراتها على تصميم الأنظمة الموزعة.

تنص نظرية CAP على أنه في النظام الموزع، يمكنك اختيار اثنين على الأكثر من الضمانات الثلاثة التالية:

  1. الاتساق: ترى كافة العقد نفس البيانات في نفس الوقت.
  2. المخزون: كل طلب يتلقى ردًا (دون ضمان صحته).
  3. مدى تحمل التقسيم: يستمر النظام في العمل رغم أعطال الشبكة.

لا يمكن لأي نظام موزّع عملي تحقيق هذه الجوانب الثلاثة مجتمعةً في ظل وجود انقطاعات في الشبكة. فعلى سبيل المثال، أثناء الانقطاع، يتعين على الأنظمة الاختيار بين تقديم بيانات قديمة (التوافر) أو رفض الطلبات حتى استعادة الاتساق (الاتساق). يُظهر فهم آلية CAP إمكانية اتخاذ قرارات مدروسة بناءً على الأولويات التشغيلية، وهي مهارة أساسية في مقابلات تصميم الأنظمة.


8) كيف يمكنك تصميم خدمة مراسلة فورية مثل واتساب بشكل عام؟

لتصميم نظام دردشة على نطاق واسع، ابدأ بتحديد المتطلبات الرئيسية: تسليم الرسائل في الوقت الفعلي، والاستمرارية، وترتيب الرسائل، والدعم دون اتصال بالإنترنت، وقابلية التوسع.

على مستوى عال:

  • العملاء الاتصال عبر الويب/الجوال بخوادم البوابة.
  • موجهات الرسائل معالجة الرسائل الواردة وإرسالها إلى المستلمين (عبر اتصالات مستمرة مثل WebSockets).
  • قواعد بيانات تخزين سجل الرسائل، مع تقسيم مناسب لقواعد المستخدمين الكبيرة.

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


9) ما هو التجزئة وكيف تساعد في توسيع نطاق قواعد البيانات؟

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

يمكن تقسيم البيانات حسب معرّف العميل أو المنطقة الجغرافية أو التجزئة. ورغم أن التقسيم يقلل الحمل على كل عقدة، إلا أنه يزيد من تعقيد الاستعلامات بين الأجزاء وإعادة التوازن عند إضافة أو إزالة العقد. ويتوقع القائمون على المقابلة أن تفهم هذه المفاضلات وكيف يمكن للتجزئة المتسقة أو مديري الأجزاء تبسيط العمليات.


10) صف كيف تختلف واجهات برمجة التطبيقات والخدمات المصغرة عن البنية المتجانسة.

A Monolithic architecture يجمع هذا الأسلوب جميع مكونات التطبيق في وحدة واحدة قابلة للنشر. قد يُسهّل هذا الأسلوب عملية التطوير في البداية، ولكنه يُصعّب توسيع نطاق التطبيق وصيانته وتحديثه بمرور الوقت.

Microservices تقسيم النظام إلى خدمات صغيرة قابلة للنشر بشكل مستقلكل منها مسؤول عن قدرة تجارية محددة. وتتيح واجهات برمجة التطبيقات (APIs) التواصل بين هذه الخدمات.

البعد متكشف عن وحدة متراصة Microservices
التنفيذ وحدة مفردة الخدمات المستقلة
التوسعة محدود التوسع حسب الخدمة
العزل الخطأ فقير القوة
تعقيد أبسط في البداية عمليات أكثر تعقيدا

تعمل الخدمات المصغرة على تحسين قابلية التوسع ومرونة النشر، ولكنها تتطلب أدوات تشغيل متقدمة (اكتشاف الخدمات، trac(بما في ذلك التسامح مع الأخطاء). تُظهر مناقشة هذا الأمر قدرتك على التفكير المنطقي في تطور البنية والمفاضلات بين البساطة والمرونة.


11) كيف تعمل شبكة توصيل المحتوى (CDN)، وما هي مزاياها؟

A شبكة تسليم المحتوى (كدن) هي شبكة موزعة من خوادم بروكسي موزعة استراتيجياً عبر مناطق جغرافية مختلفة. هدفها الأساسي هو توصيل المحتوى للمستخدمين بأقل قدر من التأخير عن طريق تقديمها من أقرب خادم (يُعرف باسم عقدة الحافة).

عندما يطلب المستخدم موردًا من موارد الويب (مثل صورة أو فيديو أو ملف ثابت)، يقوم نظام توصيل المحتوى (CDN) بتخزين المحتوى مؤقتًا ثم يُرسله مباشرةً من خادم طرفي. إذا لم يكن المحتوى موجودًا في ذاكرة التخزين المؤقت، فإنه يسترجعه من الخادم الأصلي ويخزنه لاستخدامه في الطلبات اللاحقة.

مزايا شبكات توصيل المحتوى (CDNs):

عامل ميزة
كمون يقلل من وقت الاستجابة من خلال عرض المحتوى بالقرب من المستخدمين
عرض النطاق الترددي يُخفف استخدام النطاق الترددي من خوادم المصدر
الموثوقية يوفر تحمل الأعطال مع العقد الموزعة
التوسعة يتعامل بكفاءة مع أحجام حركة المرور العالية

تُعدّ شبكات توصيل المحتوى (CDNs) ضرورية للأنظمة العالمية مثل Netflix, YouTubeأو منصات التجارة الإلكترونية، مما يضمن الأداء العالي والتوافر.


12) ما هو تحديد معدل الطلبات، ولماذا هو ضروري في تصميم واجهة برمجة التطبيقات (API)؟

الحد من معدل يُقيّد هذا الإجراء عدد الطلبات التي يُمكن للعميل إرسالها إلى واجهة برمجة التطبيقات (API) خلال فترة زمنية مُحددة. وهو أمر بالغ الأهمية لـ منع الإساءة, مع مراعاة الاستخدام العادلو حماية خدمات الواجهة الخلفية من هجمات التحميل الزائد أو هجمات حجب الخدمة (DoS).

تشمل الخوارزميات الشائعة لتحديد معدل نقل البيانات ما يلي:

  • عداد النوافذ الثابت — بسيط ولكنه قد يتسبب في ارتفاعات حادة عند حدود النوافذ.
  • سجل منزلق / نافذة منزلقة — يوفر معالجة أكثر سلاسة للطلبات.
  • دلو الرموز / دلو متسرب — يسمح بحدوث دفعات ضمن حدود معينة ويحافظ على تدفق طلبات ثابت.

على سبيل المثال، يحدّد موقع GitHub عدد استدعاءات واجهة برمجة التطبيقات (API) بـ 5000 استدعاء في الساعة لكل مستخدم. ويضمن تطبيق حدود المعدل استقرار النظام ويحسّن جودة الخدمة بشكل عام.


13) كيف تضمن اتساق البيانات عبر الأنظمة الموزعة؟

يُعدّ الحفاظ على الاتساق في الأنظمة الموزعة تحديًا نظرًا لعمليات النسخ المتماثل وزمن استجابة الشبكة. وتوجد استراتيجيات عديدة تعتمد على المفاضلة المطلوبة بين الاتساق والتوافر.

نوع الاتساق الوصف الحلول المقترحة
تناسق قوي يرى جميع العملاء نفس البيانات على الفور النظم المصرفية
الاتساق في نهاية المطاف تنتشر التحديثات بشكل غير متزامن؛ ويُسمح بوجود اختلافات مؤقتة. يغذي وسائل الاعلام الاجتماعية
الاتساق السببي يحافظ على ترتيب السبب والنتيجة التطبيقات التعاونية

تقنيات مثل سجلات الكتابة المسبقة, الساعات المتجهة, خوارزميات الإجماع (رافت، باكسوس)و الالتزام على مرحلتين (2PC) المساعدة في الحفاظ على التزامن. يتوقع منك القائمون على المقابلة أن تشرح ذلك. when لتخفيف الاتساق من أجل تحسين الأداء وقابلية التوسع.


14) اشرح الفرق بين التكبير الأفقي والتكبير الرأسي.

يشير التوسع إلى زيادة قدرة النظام على التعامل مع المزيد من الأحمال. وهناك نوعان رئيسيان:

نوع القياس الأسلوب المزايا عيوب
التوسع الرأسي (التوسع لأعلى) أضف المزيد من الموارد (وحدة المعالجة المركزية، ذاكرة الوصول العشوائي) إلى جهاز واحد أسهل في التنفيذ حدود الأجهزة، نقطة فشل واحدة
التوسع الأفقي (التوسع الخارجي) أضف المزيد من الآلات لتوزيع الحمل توافر عالٍ، وفعالية من حيث التكلفة إدارة وتنسيق معقد

على سبيل المثال، يُعدّ توسيع خادم ويب من معالجين إلى ثمانية معالجات توسيعًا رأسيًا، بينما تُعدّ إضافة خوادم متعددة خلف موازن الأحمال توسيعًا أفقيًا. وتُفضّل الأنظمة الموزعة الحديثة مثل Kubernetes التحجيم الأفقي للمرونة.


15) ما هي قوائم انتظار الرسائل ولماذا يتم استخدامها في البنى الموزعة؟

A قائمة انتظار الرسائل يفصل هذا النظام بين المنتجين والمستهلكين عن طريق تخزين الرسائل مؤقتًا حتى تتم معالجتها. وهذا يُمكّن الاتصال غير المتزامن، مما يحسن المرونة وقابلية التوسع في الأنظمة الموزعة.

تتضمن برامج وساطة الرسائل الشائعة ما يلي: RabbitMQ, كافكا, Amazon SQSو Google حانة / فرعي.

الفوائد :

  • يُخفف من حدة الازدحام المروري
  • خدمات انفصال الأزواج
  • يُمكّن آليات إعادة المحاولة والاستمرار
  • يحسن تحمل الأعطال

على سبيل المثال: في منصة التجارة الإلكترونية، يمكن لخدمة الطلبات نشر رسالة ("تم تقديم الطلب") والتي تستهلكها خدمات المخزون والفواتير بشكل مستقل، مما يتجنب الاعتماد المباشر.


16) كيف ستصمم نظام تخزين ملفات قابل للتوسع مثل Google Drive or Dropbox?

لتصميم نظام تخزين ملفات قائم على الحوسبة السحابية، قسّمه إلى مكونات رئيسية:

  • خدمة الواجهة الأمامية: يتولى تحميل/تنزيل الملفات عبر واجهات برمجة تطبيقات REST.
  • خدمة بيانات الميثا: يخزن ملكية الملفات، وأذونات الوصول، وسجل الإصدارات.
  • خدمة التخزين: يدير أجزاء الملفات في التخزين الموزع (مثل S3 و HDFS).
  • تقطيع: يتم تقسيم الملفات إلى أجزاء أصغر (على سبيل المثال، 4 ميجابايت) من أجل التخزين والنقل بكفاءة.

وتشمل التحديات ضمان إلغاء البيانات المكررة, التناسقو مزامنة التغييرات عبر الأجهزة. يضمن تطبيق مزامنة مستوى الكتلة وتجزئة المحتوى كفاءة النطاق الترددي وسلامة البيانات.


17) ما هي العوامل الرئيسية التي يجب مراعاتها عند تصميم مخطط قاعدة بيانات قابل للتوسع؟

يُوازن المخطط القابل للتوسع بين الأداء والمرونة وسهولة الصيانة. ومن الاعتبارات المهمة ما يلي:

  • تقسيم البيانات (التجزئة) للتعامل مع النمو.
  • التطبيع مقابل عدم التطبيع: قم بالتطبيع من أجل سلامة البيانات؛ وقم بإلغاء التطبيع لتحسين الأداء عند قراءة البيانات بكثافة.
  • استراتيجية الفهرسة للبحث السريع.
  • التخزين المؤقت والنسخ المتماثل للتعامل مع حركة المرور الكثيفة.

على سبيل المثال: في تطبيقات التواصل الاجتماعي، يمكن تخزين بيانات المستخدمين ومنشوراتهم بشكل منفصل لتقليل الترابط وتحسين أداء الاستعلام. يجب أن تتوافق قرارات تصميم المخطط مع أنماط الوصول و تكرار الاستعلام.


18) ما هي مزايا وعيوب استخدام بنية الخدمات المصغرة؟

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

المزايا عيوب
النشر والتوسع المستقل زيادة التعقيد التشغيلي
عزل الأعطال والمرونة يُعد تصحيح الأخطاء الموزع أكثر صعوبة
تبني التكنولوجيا بسهولة أكبر يتطلب ثقافة DevOps قوية
تحسين قابلية صيانة الكود زيادة زمن الاستجابة بسبب عدد قفزات الشبكة

تُعد الخدمات المصغرة مثالية للأنظمة الكبيرة والمتطورة، ولكنها تتطلب مراقبة قوية، وبوابات واجهة برمجة التطبيقات، واستراتيجيات اتصال بين الخدمات.


19) كيف ستتعامل مع تكرار قاعدة البيانات في نظام واسع النطاق؟

النسخ المتماثل لقاعدة البيانات يتضمن ذلك نسخ البيانات من قاعدة البيانات الأساسية إلى نسخة أو أكثر لتحسين التوافر وأداء القراءة. وهناك نوعان رئيسيان:

نوع النسخ الوصف الحلول المقترحة
Syncكرون تُكتب التغييرات إلى النسخ المتماثلة فورًا اتساق قوي
غير متزامن يؤكد الخادم الرئيسي عملية الكتابة قبل تحديث النسخ المتماثلة أداء أفضل

يعزز التكرار التسامح مع الخطأتمكن التوزيع الجغرافي، ويدعم قراءة التحجيم (قراءة النسخ المتماثلة). ومع ذلك، فإنه يطرح تحديات مثل تأخر النسخ المتماثل وحل التعارضات. أدوات مثل MySQL تكرار المجموعة, MongoDB مجموعات النسخ المتماثلةو PostgreSQL النسخ المتماثل المتدفق هي حلول قياسية.


20) ما هي بنية البرمجيات الموجهة بالأحداث، وأين تكون أكثر فائدة؟

تُعدّ بنية البرمجيات الموجهة بالأحداث (EDA) نموذجًا تصميميًا تتواصل فيه المكونات من خلال أحداث — رسائل تشير إلى تغييرات الحالة أو الإجراءات. بدلاً من الطلبات المباشرة، تنشر الخدمات الأحداث وتشترك فيها بشكل غير متزامن.

هذا التصميم مثالي لـ الأنظمة ذات الاقتران الضعيف، مثل منصات إنترنت الأشياء والتجارة الإلكترونية وأنظمة التحليلات في الوقت الفعلي.

الفوائد :

  • قابلية عالية
  • المكونات المنفصلة
  • استجابة في الوقت الحقيقي

على سبيل المثال: في بنية أوبر، عندما يتم حجز رحلة، يؤدي حدث ما إلى تحديثات في التسعير ومطابقة السائقين وأنظمة الإشعارات في وقت واحد - كل ذلك بدون ترابط وثيق.


21) ما هو مفهوم التكرار في تصميم النظام، ولماذا هو مهم؟

العجز يعني ذلك أن تكرار نفس العملية عدة مرات له تأثير نفس التأثير كما لو تم القيام به مرة واحدةيضمن ذلك الموثوقية في الأنظمة الموزعة حيث يمكن إعادة محاولة الطلبات بسبب الأعطال أو تأخيرات الشبكة.

فمثلا:

  • للحصول على و حذف الطلبات بطبيعتها متكررة (تكرارها لا يغير الحالة).
  • سأعين الطلبات (مثل إنشاء معاملة) ليست متكررة إلا إذا تم تصميمها خصيصًا لتكون كذلك.

لتطبيق مبدأ التكرار:

  • استعمل معرفات الطلبات الفريدة إلى track عمليات إرسال مكررة.
  • الحفاظ على سجل المعاملات تجاهل العمليات المتكررة.

يُعد هذا المبدأ بالغ الأهمية في بوابات الدفع, تجهيز النظامو أنظمة البريد الإلكتروني حيث يمكن أن تتسبب الإجراءات المكررة في حدوث تناقضات خطيرة.


22) اشرح مفهوم الاتساق النهائي مع ذكر مثال.

الاتساق في نهاية المطاف هو نموذج في قواعد البيانات الموزعة حيث لا تكون التحديثات مرئية على الفور لجميع العقد، ولكن يتقارب النظام إلى حالة متسقة بمرور الوقت.

على سبيل المثال:

In Amazonالصورة DynamoDBعند تحديث عنصر ما في منطقة معينة، قد تحتوي النسخ المتماثلة في المناطق الأخرى مؤقتًا على بيانات قديمة. ومع ذلك، ستتم مزامنتها في النهاية من خلال النسخ المتماثل في الخلفية.

يُعد هذا النموذج مفيدًا في أنظمة تحديد الأولويات توفر على مدى الاتساق الصارم، مثل:

  • جداول زمنية لوسائل التواصل الاجتماعي
  • أنظمة التخزين المؤقت
  • سجلات DNS

يكمن التوازن الرئيسي بين تحمل الركود و سرعة الاستجابة.


23) كيف يمكنك تصميم نظام إشعارات يدعم قنوات متعددة (البريد الإلكتروني، الرسائل النصية القصيرة، الإشعارات الفورية)؟

يتطلب تصميم نظام إشعارات قابل للتطوير نمطية ومرونة.

الهندسة المعمارية:

  1. API الإخطار – يستقبل طلبات الإشعارات من التطبيقات.
  2. حافلة الانتظار/الرسائل – يقوم بتخزين وتوزيع الأحداث (Kafka، SQS).
  3. خدمات العمال – معالجات خاصة بالقنوات (البريد الإلكتروني، الرسائل النصية القصيرة، الإشعارات الفورية).
  4. مقدمو خدمات التوصيل – التكامل مع واجهات برمجة التطبيقات الخارجية مثل Twilio أو Firebase.
  5. قاعدة بيانات تفضيلات المستخدم – يخزن إعدادات الاشتراك/إلغاء الاشتراك وتفضيلات التردد.

الاعتبارات الرئيسية:

  • أعد محاولة عمليات التسليم الفاشلة باستخدام استراتيجيات التراجع.
  • استخدم القوالب لضمان الاتساق.
  • دعم تحديد الأولويات (الرسائل العاجلة مقابل الرسائل ذات الأولوية المنخفضة).

يضمن هذا التصميم المعياري الموثوقية وقابلية التوسع مع ظهور قنوات إشعارات جديدة.


24) ما هو فهرسة قواعد البيانات، وكيف يؤثر ذلك على الأداء؟

A فهرس قاعدة البيانات هي بنية بيانات (عادةً ما تكون شجرة B أو جدول تجزئة) تعمل على تحسين سرعة الاستعلام عن طريق تقليل عدد السجلات التي تفحصها قاعدة البيانات.

على سبيل المثال، يسمح فهرسة عمود البريد الإلكتروني في جدول المستخدمين لمحرك قاعدة البيانات بالعثور على المستخدمين عن طريق البريد الإلكتروني بسرعة دون مسح الجدول بأكمله.

البعد مع فهرس بدون فهرس
سرعة الاستعلام عمليات بحث سريعة عمليات مسح متسلسلة بطيئة
سرعة الكتابة أبطأ (يلزم تحديث الفهرس) يكتب أسرع
التخزين مساحة تخزين أكبر Less تخزين

تعمل الفهارس على تحسين أداء القراءة، ولكن يجب استخدامها بحكمة، لأنها قد تبطئ العملية. عمليات الكتابة المكثفة الأنظمة بسبب تكاليف الصيانة الإضافية.


25) كيف يمكنك ضمان تحمل الأعطال في نظام موزع واسع النطاق؟

التسامح مع الخطأ يعني ذلك أن النظام يستمر في العمل حتى عند تعطل مكوناته. ويتحقق ذلك من خلال التكرار والمراقبة والاستعادة التلقائية.

تشمل الاستراتيجيات ما يلي:

  • تكرار: البيانات أو الخدمات المكررة عبر المناطق.
  • آليات تجاوز الأعطال: إعادة توجيه الطلبات تلقائيًا إلى العقد السليمة.
  • الفحوصات الصحية وموازنات الأحمال: اكتشاف الحالات المعيبة وعزلها.
  • القواطع: منع حدوث أعطال متتالية بين الخدمات التابعة.

على سبيل المثال: Netflixيقوم "Chaos Monkey" بإيقاف تشغيل النسخ في بيئة الإنتاج عن قصد لاختبار المرونة - وهو تطبيق متقدم لمبادئ تحمل الأعطال.


26) ما الفرق بين الاتصال المتزامن والاتصال غير المتزامن في الأنظمة الموزعة؟

الميزات Syncالتواصل المتزامن الاتصال غير المتزامن
التبعية ينتظر المرسل الرد يتابع المرسل بشكل مستقل
أمثلة استدعاءات واجهة برمجة تطبيقات REST HTTP قوائم انتظار الرسائل، كافكا
كمون أعلى (حجب) انخفاض زمن الوصول المتصور
الموثوقية انخفاض في حالات الفشل أعلى (يمكن أن تستمر الرسائل)

Syncتتميز الأنظمة المتزامنة بأنها أبسط ولكنها مترابطة بإحكام، في حين أن الأنظمة غير المتزامنة تعمل على تحسين قابلية التوسع وعزل الأعطال.

على سبيل المثال، يمكن أن تكون معالجة الطلبات في نظام التجارة الإلكترونية غير متزامنة، ولكن يجب أن يظل تأكيد الدفع متزامنًا لضمان تلقي المستخدم ردود فعل فورية.


27) كيف يمكنك تصميم محدد معدل لنظام واجهة برمجة التطبيقات الموزعة؟

يضمن مُحدد معدل التوزيع استخدامًا عادلًا لواجهة برمجة التطبيقات عبر خوادم متعددة.

اقتراب:

  1. خوارزمية دلو الرمز المميز – يحصل كل مستخدم على رموز يتم تجديدها بمرور الوقت.
  2. خوارزمية دلو متسرب – تتم معالجة الطلبات بمعدل ثابت.
  3. عداد مركزي (مثل Redis) – يحتفظ بعدد الطلبات لكل مستخدم.

مثال التنفيذ:

  • استخدم عدادات Redis الذرية مع TTL.
  • Track من الطوابع الزمنية للطلبات لكل مفتاح مستخدم.
  • رفض الطلبات التي تتجاوز الحدود المسموح بها.

يمنع تحديد معدل الاستخدام سوء المعاملة, هجمات DoSو ارتفاعات غير متوقعة في التكاليف، مما يضمن جودة خدمة متسقة لجميع العملاء.


28) ما هي خوارزمية الإجماع الموزعة، ولماذا هي ضرورية؟

تضمن خوارزميات الإجماع الموزعة أن تكون العقد المتعددة في النظام الاتفاق على قيمة بيانات واحدة، حتى عند حدوث الإخفاقات.

الخوارزميات الشائعة:

  • باكسوس
  • طوف
  • زاب (يستخدم في برنامج ZooKeeper)

إنها ضرورية للحفاظ على انتخاب زعيم, تكرار الحالةو تناسق البيانات في قواعد البيانات الموزعة ومديري المجموعات مثل Kubernetes.

على سبيل المثال: يضمن بروتوكول Raft أن تتفق جميع العقد على إدخالات السجل قبل تطبيقها على آلات الحالة، مما يضمن الموثوقية حتى في حالة تعطل العقد.


29) كيف يمكنك تصميم نظام تسجيل ومراقبة للخدمات المصغرة؟

تتطلب مراقبة الأنظمة الموزعة إمكانية مراقبة مركزية لاكتشاف المشكلات وحلها.

المكونات الأساسية:

  • تسجيل: اجمع سجلات جميع الخدمات باستخدام أدوات مثل Fluentd or Logstash.
  • المقاييس: استخدم بروميثيوس أو داتادوغ لـ tracمؤشرات الأداء k (وحدة المعالجة المركزية، الذاكرة، زمن استجابة الطلب).
  • Tracجي: تنفيذ التوزيع tracing (Jaeger, Zipkin) to tracمسارات طلبات k عبر الخدمات.
  • التنبيه: قم بتعيين عتبات لتفعيل التنبيهات في PagerDuty أو Slack.

أفضل ممارسة:

استعمل معرّفات الارتباط إلى tracطلب مستخدم واحد عبر خدمات مصغرة متعددة - أمر بالغ الأهمية لتصحيح أخطاء الإنتاج.


30) ما هي الاعتبارات التصميمية الرئيسية لبناء نظام عالي التوافر (HA)؟

A التوافر العالي (HA) يقلل النظام من وقت التوقف ويضمن استمرارية الخدمة.

عوامل التصميم الرئيسية:

  1. وفرة: استخدم عدة خوادم لكل مكون.
  2. القضاء على نقاط الفشل الفردية (SPOF).
  3. التعافي التلقائي من الفشل: إعادة توجيه حركة المرور أثناء انقطاع الخدمة.
  4. تكرار البيانات: ضمان استمرارية البيانات عبر المناطق.
  5. المراقبة الصحية: اكتشاف واستبدال العقد غير الصحية تلقائيًا.
  6. التعافي من الكوارث (DR): قم بتنفيذ عمليات النسخ الاحتياطي والتكرار الجغرافي.

على سبيل المثال: تقوم AWS بنشر الخدمات عبر مناطق التوافر (AZs) وتستخدم موازنات التحميل المرنة للتحويل التلقائي في حالة الفشل، مما يضمن اتفاقيات مستوى الخدمة بنسبة 99.99٪.


🔍 أهم أسئلة مقابلات تصميم الأنظمة مع سيناريوهات واقعية وإجابات استراتيجية

1) كيف تتعامل مع تصميم نظام موزع واسع النطاق من الصفر؟

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

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


2) هل يمكنك شرح الفرق بين التحجيم الأفقي والتحجيم الرأسي، ومتى تستخدم كل منهما؟

المتوقع من المرشح: يقوم القائم بالمقابلة باختبار معرفتك الأساسية بقابلية التوسع وقدرتك على تطبيق الاستراتيجية الصحيحة في أنظمة العالم الحقيقي.

مثال للإجابة: "يتضمن التوسع الرأسي إضافة المزيد من الموارد إلى جهاز واحد، بينما يضيف التوسع الأفقي المزيد من الأجهزة للتعامل مع الحمل. التوسع الرأسي أبسط ولكنه محدود، في حين أن التوسع الأفقي أكثر تعقيدًا ولكنه يوفر تحملًا أفضل للأعطال وقابلية توسع طويلة الأجل."


3) كيف تضمن التوافر العالي في تصميم النظام؟

المتوقع من المرشح: يرغب القائم بالمقابلة في تقييم فهمك لمفهوم التكرار، وآليات تجاوز الأعطال، ومرونة النظام.

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


4) صف موقفًا اضطررت فيه إلى المفاضلة بين الاتساق والتوافر.

المتوقع من المرشح: يقوم القائم بالمقابلة بتقييم فهمك لنظرية CAP وقدرتك على اتخاذ القرارات في ظل القيود.

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


5) كيف تقرر أي قاعدة بيانات ستستخدمها لنظام معين؟

المتوقع من المرشح: يريد القائم بالمقابلة أن يرى كيف تقوم بمواءمة خيارات تخزين البيانات مع متطلبات النظام.

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


6) كيف يمكنك تصميم نظام للتعامل مع الارتفاعات المفاجئة في حركة المرور؟

المتوقع من المرشح: يختبر القائم بالمقابلة قدرتك على تصميم حلول قابلة للتوسع وتتحمل أحمالاً غير متوقعة.

مثال للإجابة: "كنت أستخدم مجموعات التوسع التلقائي، وموازنات الأحمال، وطبقات التخزين المؤقت مثل مخازن الذاكرة. في وظيفتي السابقة، سمحت هذه التقنيات للنظام باستيعاب الزيادات المفاجئة في حركة البيانات دون التأثير على الأداء."


7) ما هو دور التخزين المؤقت في تصميم النظام، وأين ستطبقه؟

المتوقع من المرشح: يريد القائم بالمقابلة أن يفهم كيف تقوم بتحسين الأداء وتقليل الحمل على الخدمات الأساسية.

مثال للإجابة: "يُحسّن التخزين المؤقت وقت الاستجابة ويقلل من حمل قاعدة البيانات. ويمكن تنفيذه على مستويات متعددة، بما في ذلك التخزين المؤقت من جانب العميل، وشبكة توصيل المحتوى (CDN)، ومستوى التطبيق، واستعلامات قاعدة البيانات، وذلك حسب حالة الاستخدام."


8) كيف تتعامل مع تقسيم البيانات وتجزئتها؟

المتوقع من المرشح: يقوم القائم بالمقابلة بتقييم قدرتك على تصميم أنظمة تعمل على توسيع نطاق البيانات أفقيًا.

مثال للإجابة: أختار مفتاح تجزئة يوزع البيانات بالتساوي ويقلل من الاستعلامات بين الأجزاء. كما أخطط لإعادة التجزئة وأراقب توزيع البيانات لتجنب النقاط الساخنة مع نمو النظام.


9) صف موقفًا أثرت فيه مراقبة النظام على قرار التصميم.

المتوقع من المرشح: يريد القائم بالمقابلة أن يرى كيف تستخدم قابلية المراقبة لتحسين موثوقية النظام وأدائه.

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


10) كيف تقوم بتوصيل تصميمات الأنظمة المعقدة إلى أصحاب المصلحة غير التقنيين؟

المتوقع من المرشح: يقوم القائم بالمقابلة بتقييم مهاراتك في التواصل وقدرتك على مواءمة القرارات التقنية مع أهداف العمل.

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

تلخيص هذه التدوينة بـ: