معمارية البرمجيات / الأساسيات: الوعود والبنية والملكية / الدرس 2
اجعل أهداف الجودة قابلة للقياس
حوّل أوصاف الجودة العامة إلى سيناريوهات محددة بالحمل ووازن بين النتائج المتعارضة.
في هذه الصفحة
أهداف الدرس
- اكتب سيناريو جودة يحدد المحفز والبيئة والاستجابة والقياس.
- افصل الهدف التجاري عن نتيجة الاختبار وعن الالتزام التشغيلي.
استبدل الصفات بسلوك يمكن ملاحظته
تعبّر كلمات سريع وآمن وسهل الصيانة عن نوايا، لكنها لا تخبر المراجع بما يفحصه. يحدد سيناريو الأداء لخدمة الورش طلبا وحملا وحدود الاستجابة ومئينا خلال فترة معلومة. أما سيناريو قابلية التغيير فيصف مهمة تطوير، مثل إضافة قاعدة إلغاء دون تعديل إرسال الإشعارات. يحتاج كل سيناريو إلى دليل مختلف. فقد يستجيب النظام بسرعة في مختبر هادئ، لكنه يصعب تغييره أو استعادته بعد عطل.
اذكر الشروط مع الرقم
يمثل JSON التالي هدفا افتراضيا، لا نتيجة قياس. وهو يحدد قراءة قائمة ببيانات اصطناعية ثابتة وحدود قياس عند العميل. يعني المئين أن خمسة وتسعين في المئة على الأقل من الطلبات المقاسة ينبغي أن تنتهي ضمن العتبة في الظروف المذكورة. ولا يصف مجموعة بيانات مختلفة أو كتابة حجز أو كل الشبكات. يمنع ذكر الاستبعادات تحويل اختبار محدود إلى وعد غير مبرر عن الخدمة كلها.
{"operation":"list workshops","environment":"isolated lab","dataset_rows":1000,"concurrent_clients":5,"response":"complete response body","target_p95_ms":300,"status":"target, not measured"}
المثال JSON صالح. أرقامه افتراضات تعليمية؛ لا ينفذ طلبات ولا يدعي ملاءمة الهدف لمنتج حقيقي.
حدّد المقام قبل مناقشة الإتاحة
تحتاج نسبة النجاح إلى تعريف المحاولات المحتسبة والنتائج الناجحة. فقد يخفي عد استجابات HTTP فقط رفض حجوزات صالحة، بينما يشوّه احتساب كل طلب مشوه كتعطل للخدمة القياس بطريقة أخرى. حدّد هل الهدف مبني على الطلبات أم الزمن، ونافذة الرصد ومكان قياس الإخفاق. وتتطلب استبعادات الصيانة وفجوات الرصد معالجة صريحة. أما اتفاق الخدمة التعاقدي فهو التزام آخر؛ فلا ينبغي أن تتحول غاية افتراضية في وثيقة المعمارية إلى وعد للعملاء.
أظهر التعارض بدلا من تكديس الأهداف
افترض أن المسؤولين يحتاجون ظهور الإلغاء فورا بينما تحسن القائمة المخزنة مؤقتا زمن الاستجابة. قد يفيد عمر تخزين أطول مقياسا ويضعف الآخر. وثّق مطلب الحداثة واختر إبطالا أو إصدارات تناسبه. وبالمثل، قد تحسن النسخ الإضافية بعض سيناريوهات الإتاحة وتضيف كلفة اتساق وتشغيل. رتّب سيناريوهات الجودة الأهم وقارن الخيارات وفقها جميعا. لا تفسر قائمة رغبات غير مرتبة سبب قبول كلفة لحماية نتيجة أخرى.
scenario: cancelled workshop stops accepting reservations
stimulus: administrator confirms cancellation
environment: normal operation
response: new reservation requests are rejected
measure: rejection begins before cancellation confirmation returns
يحدد القياس ضمان ترتيب بدلا من سرعة اعتباطية. وقد يظل نموذج قراءة قديم يعرض الورشة، لكن مسار الحجز المرجعي يجب أن يفرض القاعدة المعلنة.
صمّم دليلا يمكنه دحض الادعاء
قرّر ما يعد إخفاقا لكل سيناريو قبل القياس. يحتاج اختبار الزمن إلى بيانات مناسبة وسياسة تهيئة؛ وتحتاج مراجعة قابلية التغيير إلى تعديل محدد وسجل الحدود المتأثرة. ويحتاج تمرين الاستعادة إلى عطل صريح وفحوص صحة بعد الاسترجاع. احتفظ بالطريقة والملاحظات والبيئة ليتحقق شخص آخر من النطاق. وعند نقص الدليل سجّل خطرا مفتوحا له مالك. لا يجيب متوسط موات عن سيناريو يتعلق بذيل زمن الاستجابة أو الحجوزات الضائعة.
الأخطاء الشائعة وإصلاحها
يقول المطلب متاح بدرجة عالية فقط.
- لماذا يحدث؟
- لم تحدد العملية المحتسبة أو النافذة أو نقطة القياس.
- كيف تصلحه؟
- اكتب سيناريو فشل باستجابة قابلة للقياس.
- كيف تتجنب تكراره؟
- راجع الأهداف مع مالكي العمل والتشغيل.
يخفي المتوسط أقلية طلبات بطيئة.
- لماذا يحدث؟
- لا يتوافق الإحصاء مع اهتمام المستخدم.
- كيف تصلحه؟
- افحص مئينا وتوزيعا مناسبين تحت الحمل نفسه.
- كيف تتجنب تكراره؟
- حدّد الإحصاء وحدود العينة مسبقا.
يُعرض هدف مختبري كضمان تعاقدي.
- لماذا يحدث؟
- دُمج المرغوب والمقاس والموعود.
- كيف تصلحه؟
- افصل الهدف والدليل وأشرك مالك الاتفاق.
- كيف تتجنب تكراره؟
- أبق الالتزامات التشغيلية ضمن مسارها المعتمد.
اختبر فهمك
1. يذكر الفريق متوسطا قدره 100 ms. هل يمكنه ادعاء أن p95 أقل من 300 ms؟
اعرض الحل المشروح
لا. تتشارك توزيعات عديدة المتوسط نفسه وتختلف في الذيل. احصل على مشاهدات منفردة أو مدرج مضبوط، وحدّد حساب المئين والنافذة، وقارن العملية والحمل نفسيهما بالهدف. اذكر حجم العينة والشروط. المتوسط دليل مفيد لسؤال مختلف، لكنه لا يثبت المئين المطلوب.
2. أعد صياغة سهل الصيانة لقاعدة خصم جديدة في خدمة الحجز.
اعرض الحل المشروح
يمكن القول: عندما يضيف مطور مخول سياسة خصم للتطبيق، تبقى قيود الحجز وواجهات الإشعار دون تغيير، وتثبت اختبارات السياسة الحالات الجديدة. راجع الوحدات والاختبارات المعدلة فعلا بدلا من اختراع حد عام لعدد الملفات. وإذا لزم هدف عددي للجهد، فيبرره الفريق وفق خط أساسه.
أهم ما تعلمته
- يحتاج ادعاء الجودة إلى شروط وقياس ودليل.
- يسهّل ترتيب السيناريوهات مراجعة المقايضات.