القائمة

سير عمل التحقق بدفعات كبيرة من الأرقام: الفئات والتقارير

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

تاريخ النشر

  • التحقق
  • استيراد دفعات
  • بيانات اختبار

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

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

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

ما الذي يجعل التحقق بدفعات مختلفا؟

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

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

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

المراحل الأربع لسير العمل

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

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

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

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

تقسيم النتائج إلى فئات

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

الفئة الأولى هي القيم الصحيحة تماما. وهذه لا تحتاج عملا لكنها جزء من التقرير لأن حجمها يطمئن أو يربك.

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

الفئة الثالثة هي القيم التي فشلت في الشكل. وهذه تشمل الطول الخاطئ وأحرفا غير مسموح بها وحقول ضرورية فارغة. وهي في الأغلب خطأ في المصدر وليس في التخطيط.

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

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

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

كيف تكتب التقرير؟

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

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

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

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

ماذا تفعل بالصفوف المرفوضة؟

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

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

القرار الثالث هو إعادة التشغيل. اجعل السير قابلا للاستدعاء من جديد دون أن يضاعف سجلاته السابقة، ودون أن يغير النتائج لمجرد أن الملف لم يتغير.

الأداء والحدود العملية

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

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

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

الخطوات التالية

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

تابع القراءة

أدلة أداة التحقق من أرقام البطاقات وأرقام الهوية