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

معمارية البرمجيات / الأساسيات: الوعود والبنية والملكية / الدرس 3

استخدم مناظير المعمارية للإجابة عن أسئلة مختلفة

حافظ على اتساق السياق والحاويات والمكونات وتفاعلات التشغيل ومسؤوليات النشر.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • اختر المنظور وفق جمهوره وسؤاله بدلا من رسم كل مستوى ممكن.
  • تتبّع قصة فشل عبر العلاقات وحدود النشر.

ابدأ بالأشخاص والأنظمة الخارجية

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

اشرح التطبيقات المنفذة ومخازن البيانات

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

text حصر نصي لعلاقات الحاويات
Learner -> Browser UI: request reservation
Browser UI -> Booking API: HTTPS reservation request
Booking API -> Reservation Store: atomic seat allocation
Booking API -> Mail Provider: notification request

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

كبّر التفاصيل حيث تفسّر قرارا

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

احك سيناريو بمسارات النجاح والفشل

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

text قصة تشغيل لاستجابة مجهولة
1. Client sends reservation with request_id R17.
2. API records reservation and request outcome atomically.
3. Connection fails before the response arrives.
4. Client repeats R17.
5. API returns the previously recorded outcome.

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

أظهر مواضع الأعطال وحدود الثقة

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

الأخطاء الشائعة وإصلاحها

تُفهم الحاوية على أنها نشر Docker إلزامي.

لماذا يحدث؟
اختلط تجريد الرسم بتقنية التغليف.
كيف تصلحه؟
عرّف مصطلح C4 وسمّ بيئة التنفيذ الفعلية منفصلة.
كيف تتجنب تكراره؟
أضف مفتاحا للمصطلحات متعددة المعاني.

تفتقر الأسهم إلى اتجاه أو غرض.

لماذا يحدث؟
عومل الرسم كزينة بدلا من نموذج تواصل.
كيف تصلحه؟
سمّ البادئ والبروتوكول وسبب العلاقات المهمة.
كيف تتجنب تكراره؟
اطلب من قارئ جديد سرد سير عمل انطلاقا من الرسم.

يُدّعى أن نسختين تزيلان كل الأعطال المنفردة.

لماذا يحدث؟
غابت الاعتماديات المشتركة عن منظور النشر.
كيف تصلحه؟
ارسم اعتماديات المضيف والتخزين والهوية والإعداد صراحة.
كيف تتجنب تكراره؟
راجع فشل اعتمادية محدد مع كل ادعاء للتكرار.

اختبر فهمك

1. أي منظور يفسّر عدم تلقي المتعلم ردا بعد تثبيت الحجز؟

اعرض الحل المشروح

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

2. يتضمن رسم المكونات كل دالة مساعدة. كيف تنقحه؟

اعرض الحل المشروح

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

أهم ما تعلمته

  • تجيب المناظير المختلفة عن أسئلة متنوعة للنظام نفسه.
  • تكشف قصة التشغيل الغموض والترتيب اللذين لا تظهرهما البنية الثابتة.

المراجع الرسمية