كتابة معايير قبول تؤدي الغرض فعلًا
جودة ما يبنيه الوكيل محكومة بسقف جودة تعريفك لـ«منجَز». وهذه أعلى خمس عشرة دقيقة أثرًا في هذا التوثيق.
الاختبار الوحيد المهم
هل يمكن لهذا المعيار أن يفشل؟ إن لم توجد نتيجة قابلة للملاحظة تنتهكه، فهو ليس معيارًا؛ بل مزاج. «حسّن تدفّق التهيئة» لا يمكن أن يفشل. أما «يصل المستخدم الجديد إلى اللوحة في 3 شاشات أو أقل دون إدخال كلمة مرور» فيمكن. القابلية للتكذيب هي اللعبة كلها؛ وكل ما دونها تقنية.
تشريح معيار ناجح
ثلاثة أجزاء، في معظم الأحوال:
- سلوك قابل للملاحظة: ما الذي يحدث، من خارج الكود. «طلب رابط سحري لبريد غير معروف يعرض التأكيد نفسه الذي يعرضه لبريد معروف.»
- حدّ: الرقم أو السقف أو الحافة. «ينتهي الرابط بعد 15 دقيقة.» «60 طلبًا في الدقيقة لكل عنوان IP.»
- حالة فشل: ما الذي يحدث حين تسوء الأمور. «الرابط المنتهي يعرض شاشة إعادة إرسال، لا صفحة خطأ.»
المعايير الضعيفة تحمل السلوك عادةً وتتجاوز الاثنين الآخرين. والحدّ وحالة الفشل هما تحديدًا حيث يخمّن الوكيل غير الموجَّه، فهما تحديدًا ما تحدّده أنت.
أمثلة معالَجة
غامض أكثر مما ينبغي: «عالج تحديد المعدّل كما ينبغي.»
ناجح: «الطلبات غير المصادَق عليها إلى /api/* فوق 60 في الدقيقة لكل IP تعيد 429 مع ترويسة Retry-After؛ والطلبات المصادَق عليها مستثناة.»
غامض أكثر مما ينبغي: «ينبغي إشعار المستخدمين بالمدفوعات الفاشلة.»
ناجح: «عند فشل عملية خصم، يتلقّى مالك الحساب رسالة واحدة خلال 5 دقائق تتضمّن سبب الفشل ورابط إعادة المحاولة. وثلاث حالات فشل متتالية تُعلّم الحساب past_due.»
غامض وكبير أكثر مما ينبغي: «هاجر التطبيق إلى نظام التصميم الجديد.»
هذه ليست مشكلة معيار؛ بل مشكلة تحديد نطاق. إن لم تستطع كتابة معيار واحد يغطّي المهمة، فهي عدة مهام. قسّم أولًا، ثم حدّد.
عاير المراسم على التعقيد
ليس كل شيء يستحق ثلاثة معايير. المهمة الروتينية trivial («ارفع إصدار الاعتمادية، وتبقى الاختبارات خضراء») تحتاج سطرًا واحدًا أو لا شيء. والقاعدة: كل ما تسلّمه إلى وكيل يحصل على معيار واحد قابل للتكذيب على الأقل، لأن المعيار يؤدي عنك التمرير الأول من مراجعة الكود.
دع Masaro يصوغ، والقرار لك
المهام المولَّدة من العصف الذهني تصل ومعها معايير مصاغة. عامل المسودات كما تعامل كود الوكيل: مفيدة وسريعة ولك أن تُحكِمها. والخمس ثوانٍ التي تقضيها في شحذ «يعرض خطأً» إلى «يعرض خطأً ضمن الصفحة ويحتفظ بالمدخلات» تسدّد ثمنها وقت المراجعة.
روائح مريبة
- «كما ينبغي»، «بشكل صحيح»، «بسلاسة»: عناصر نائبة في موضع كان ينبغي أن يكون فيه حدّ.
- تنفيذ لا سلوك: «استخدم Redis لتحديد المعدّل» قيدٌ (لا بأس: ضعه في الوصف أو في ذاكرة المشروع)؛ أما المعيار فهو استجابة 429 القابلة للملاحظة.
- المعيار غير المرئي: ما لا تستطيع فحصه في أقل من دقيقتين وقت المراجعة. فإن كان التحقق باهظًا، صار ادّعاء الوكيل «مستوفى» غير قابل للتكذيب عمليًا.
التالي: مراجعة عمل الوكيل