معمارية البرمجيات / الأساسيات: الوعود والبنية والملكية / الدرس 1
تبدأ المعمارية بالقرارات ذات الأثر
اربط حدود النظام واهتمامات أصحاب المصلحة والقرارات القابلة للتراجع من خلال خدمة افتراضية لحجز الورش.
في هذه الصفحة
أهداف الدرس
- ميّز القرار المعماري من تفصيل التنفيذ المحلي بالنظر إلى عواقبه.
- حدّد النطاق والقيود والافتراضات والأدلة قبل اختيار البنية التحتية.
تعرّف القرارات المكلفة عند التراجع عنها
تهتم المعمارية بالبنى والقرارات التي تحدد كيفية تغيير النظام وتشغيله وتعطله. ولا يكشف اسم إطار العمل وحده هذه العواقب. في خدمة الورش الافتراضية، يؤثر تحديد مالك حجز المقعد في التزامن والاستعادة والدعم، بينما يؤثر اسم دالة مساعدة خاصة غالبا في ملف واحد. تعتمد الأهمية على السياق، لا على قائمة ثابتة. ويصبح القرار معماريا إذا اعتمدت عليه فرق كثيرة، أو تطلب تغييره نقل البيانات، أو تجاوز فشله حدود ثقة مهمة.
صِف ما يَعِد به النظام
ابدأ بمهمة يمكن ملاحظتها: يطلب المتعلم مكانا ويتلقى حجزا مؤكدا أو رفضا صريحا. ارسم حدود البرمجيات المسؤولة عن هذا الوعد. تكون خدمة البريد جهة متعاونة، ويكون المتعلم ومسؤول الورشة طرفين متفاعلين. وقد تقع واجهة المتصفح داخل حدود النظام رغم تشغيلها على جهاز آخر. ملكية المؤسسة ومكان التنفيذ والثقة أبعاد منفصلة. ويساعد تحديدها على منع اعتبار مزود دفع أو إشعارات خارجي جزءا مضمونا من معاملتك.
{"system":"Workshop Booking","owns":["seat reservations"],"external":["mail provider"],"excluded":["course delivery"]}
يعلن JSON مسؤولية مملوكة وقرارين صريحين للحدود. وهو وثيقة، وليس آلية نشر أو فرض قواعد.
افصل القيود المفروضة عن التفضيلات المختارة
قد تقيّد الخيارات قاعدة قانونية للاحتفاظ بالسجلات، أو خدمة هوية قائمة، أو ميزانية الفريق. أما تفضيل مطور لوسيط رسائل غير مألوف فليس قيدا تلقائيا. سجّل مصدر كل قيد وسببه وموعد مراجعته. وافصل الحقيقة عن الافتراض: فالقول إن التسجيل يبلغ ذروته في ساعة معينة يحتاج إلى دليل أو وصفه بوضوح كافتراض. ينبغي أن تكشف المعمارية عدم اليقين مبكرا، لأن تصميما دقيقا مبنيا على حمل غير مثبت قد يكون أقل فائدة من تصميم أبسط له خطة قياس واضحة.
قارن العواقب وفق السؤال نفسه
قارن تطبيقا مقسما إلى وحدات بخدمات منشورة بصورة منفصلة لتنفيذ الحجز. يمكن لكليهما تقديم واجهة HTTP واستخدام قاعدة بيانات دائمة. قارن استقلال الإصدار والخبرة التشغيلية واحتياجات الاتساق وتنسيق الفرق بدلا من عدّ المربعات. يسجل المثال سبب ملاءمة خيار لفريق افتراضي صغير حاليا. ومُحفّز المراجعة مهم: إذا ظهرت حاجة مثبتة إلى استقلال ملكية الإصدارات، يستطيع الفريق إعادة النظر دون اعتبار القرار الأصلي خطأ أو قاعدة أبدية.
decision: keep booking in one deployable application
reason: one team owns the reservation transaction
cost: components share the release schedule
review_when: two teams need independent releases
تمنع الكلفة المعلنة تحول القرار إلى دعاية. ويصف المُحفّز دليلا قد يغير النتيجة؛ فلا يوجد حجم فريق أو أسلوب نشر صحيح لجميع الأنظمة.
حوّل المجهول إلى تحقيق محدود
اختبر أخطر افتراض بأصغر تجربة مفيدة. إذا هدد طلبا حجز متزامنان المقعد الأخير، فاختبار معاملة محلية أفيد من قياس واسع للمنصة. حدّد المدخلات والقيد المتوقع والنتيجة المرصودة وحدود التجربة. لا يثبت نجاح اختبار محلي السلوك في كل فشل إنتاجي. اربط سجل المعمارية بالأدلة وبيئتها حتى يعرف المراجعون لاحقا هل يظل القرار مبررا بعد تغير الأحمال أو الفرق أو الاعتماديات.
الأخطاء الشائعة وإصلاحها
يسرد الرسم منتجات دون مسؤوليات.
- لماذا يحدث؟
- حل اختيار التقنية محل تعريف الوعد للمستخدم.
- كيف تصلحه؟
- سمّ سير العمل المملوك وعاقبة كل حد.
- كيف تتجنب تكراره؟
- اطلب بيان نطاق قبل مراجعة المنتجات.
يوصف تفضيل بأنه إلزامي.
- لماذا يحدث؟
- أُهمل مصدر القيد وصلاحية فرضه.
- كيف تصلحه؟
- سجّل المالك وميّز الافتراض من القاعدة المفروضة.
- كيف تتجنب تكراره؟
- راجع القيود عند تغير مصدرها أو سياقها.
للقرار فوائد دون تكاليف.
- لماذا يحدث؟
- يحاول السجل الدفاع عن الاختيار بدلا من تفسيره.
- كيف تصلحه؟
- وثّق البديل المرفوض والمقايضة المقبولة.
- كيف تتجنب تكراره؟
- ضمّن مُحفّز مراجعة ورابط دليل لكل قرار مؤثر.
اختبر فهمك
1. يقترح الفريق طابورا لأن التسجيل قد ينمو. ما الدليل المطلوب قبل الموافقة؟
اعرض الحل المشروح
حدّد سير العمل الذي يحتاج إلى تخزين مؤقت، وزمن إنجازه المقبول، ومعدلي الوصول والمعالجة، وكيف يعرف المستخدم النتيجة النهائية. قارنه بالمعالجة المتزامنة تحت افتراض الحمل نفسه. إذا لم توجد مهمة مؤجلة أو فجوة سعة، فقد يضيف الطابور حالات فشل دون حل مشكلة مثبتة. سجّل عدم اليقين وتجربة محدودة بدلا من اختراع توقع للنمو.
2. تعطل مزود البريد الخارجي. هل يعني ذلك ضرورة فشل حجز المقعد؟
اعرض الحل المشروح
يحدث ذلك فقط إذا اشترط الوعد التجاري نجاح البريد قبل التأكيد. ويمكن بدلا من ذلك امتلاك الحجز بصورة مستقلة وتسجيل مهمة إشعار لاحقة. يجب أن تحدد المعمارية هذا الاختيار وكيف يسترجع المستخدم حجوزاته المؤكدة وكيف تعاد الإشعارات الفاشلة أو تُصعّد. لا تحدد حدود النظام وحدها السياسة التجارية.
أهم ما تعلمته
- تفسّر المعمارية المفيدة القرارات المؤثرة ضمن سياقها.
- ترتبط الحدود والأدلة والمقايضات ومُحفّز المراجعة ببعضها.