البيانات الرديئة ليست مكلفة حيث تدخل، بل حيث تُصدَّق. الصف المعطوب لا يكلف شيئًا عند الدخول، ويكلف قليلًا عند التحويل، ثم يكلف الكثير بعد أن يتفرع إلى اللوحات والنماذج ورقمٍ يُقتبس في اجتماع مجلس الإدارة. وحين ينتبه أحد، يكون للصف المعطوب ذرية كاملة.
لهذا فإن التحقق مكانه أعلى المجرى. في 0plus تقف بوابات الجودة في مقدمة كل خط بيانات: تفشل بصوت عالٍ ومبكرًا، وتحوّل السجلات الرديئة إلى الحجر بدل حذفها، ويُكتب كل قرار تتخذه في سجل التدقيق. في هذا المقال نصف النمط وتصميم القواعد خلفه.
التحقق مكانه أعلى المجرى
معظم الفرق تفحص الجودة أسفل المجرى، لأن أسفل المجرى هو حيث يظهر الألم. تبدو لوحة ما خاطئة، فيتتبعها أحدهم إلى الوراء، ويُرقَّع الإصلاح في طبقة التقارير. لكن العيب يبقى في المصدر، جاهزًا للتسرب إلى التقرير التالي. الفحوص السفلية مؤشرات متأخرة: تخبرك أن البيانات الرديئة انتشرت فعلًا، ولا تقول شيئًا عن بقية الأماكن التي وصلتها.
البوابة عند نقطة الدخول تقلب المعادلة. حين تفشل دفعة عند الاستقبال، يكون نطاق الضرر دفعة واحدة: لا شيء دُمج معها، ولا شيء جُمّع منها، ولا أحد اقتبسها. ويكون الإصلاح رخيصًا لأن العيب ما يزال في مكان واحد، وما يزال يشبه ما أنتجه النظام المصدر. وكل خطوة يقطعها سجل رديء تضاعف كلفة إزالته.
الفشل بصوت عالٍ لا يقل أهمية عن الفشل المبكر. فالبوابة التي تسجل تحذيرًا ثم تمرر الدفعة مجرد زينة. في نمطنا، الفشل الصارم يوقف النشر، ويعزل الدفعة، ويُخطر مالك الخط بالقاعدة التي انطلقت والصفوف التي أطلقتها. والتحويل القسري الصامت أسوأ من الفشل: المحمّل الذي يحوّل التواريخ المعطوبة بهدوء إلى قيم فارغة لم ينظّف البيانات، بل أخفى الدليل.
منطقة الحجر
السجلات التي تفشل عند البوابة لا تختفي، ولا توقف التشغيل كله. بل تُحوَّل إلى جدول حجر يحفظ القيم الخام الأصلية، والقاعدة التي رفضتها، ورمز السبب، والدفعة التي وصلت فيها. تمضي الصفوف النظيفة في طريقها، وتنتظر الصفوف الفاشلة، مرئيةً، في طابور له مالك.
الحجر يمنح ديون الجودة عنوانًا. فبدل إحساس غامض بأن جدول العملاء غير موثوق، تصبح لديك متأخرات قابلة للعد: صفوف في الحجر، والقواعد التي وضعتها هناك، والمصادر التي لا تكف عن إنتاجها. بعض الإصلاحات مكانها النظام المصدر، وبعضها تعديل للقاعدة نفسها، فأحيانًا تكون القاعدة هي الخطأ لا البيانات. وفي الحالين، لا شيء يدخل الطبقة المنشورة من بحيرة البيانات دون اجتياز البوابة، فتحتفظ المصادقة بمعناها.
تصميم القواعد
نصنّف القواعد في أربع عائلات، مرتبةً تقريبًا بحسب رخص فشلها.
- قواعد المخطط: الأنواع والحقول الإلزامية وشكل الأعمدة. أرخص الفحوص وخط الدفاع الأول، لأن كسرًا واحدًا في المخطط أعلى المجرى يعني مئة تحويل مكسور أسفله.
- قواعد النطاقات والتوزيع: قيم ضمن حدود معقولة، وأحجام ضمن نوافذ متوقعة. فالملف الذي يحمل كميات سالبة، أو ثلاثة أمثال عدد الصفوف المعتاد، يستحق عينًا بشرية قبل أن يستحق عملية دمج.
- القواعد المرجعية: كل مفتاح أجنبي يجد مقصده، وكل رمز موجود في جدوله المرجعي. تلتقط هذه القواعد الإخفاقات الهادئة حيث يسقط الدمج صفوفًا بصمت فينكمش المجموع دون أي خطأ.
- قواعد تطبيع النص العربي: توحيد صور الألف والهمزة، وتطبيع التاء المربوطة، وإزالة التطويل، والتوفيق بين الأرقام الهندية واللاتينية، وتوحيد صيغ التواريخ قبل أي مطابقة.
العائلة الأخيرة هي حيث تكف العربية أولًا عن كونها شعارًا. فبالنسبة إلى عملية دمج، كتابتان لاسم العميل نفسه عميلان اثنان. والبوابة التي تطبّع النص العربي عند الدخول، وتحجر ما لا تستطيع تطبيعه بثقة، هي الفرق بين إزالة التكرار وصناعته. وفعل ذلك مرة واحدة عند البوابة خير من فعله وقت الاستعلام في كل مستهلك إلى الأبد. وعلى سبيل المثال، يمكن أن تكون قاعدة بسيطة بهذا الوضوح:
-- gate: staging_orders, rule qg-014, version 3 SELECT order_id FROM staging_orders WHERE amount <= 0 OR order_date > CURRENT_DATE OR customer_id NOT IN (SELECT id FROM ref_customers); -- action: quarantine matching rows -- halt publish when failures exceed 0.5% of the batch
البوابات تغذّي سجل التدقيق
كل قرار تتخذه البوابة حدثٌ يُكتب لحظة التنفيذ: القاعدة التي جرت وإصدارها، والدفعة التي قيّمتها، وعدد الصفوف التي اجتازت أو فشلت أو حُجرت، ومن اعتمد آخر تغيير على القاعدة. فالقواعد سياسة ذات إصدارات: حين يتحرك حدٌّ ما، يُظهر سجل التدقيق من حرّكه، ومتى، وماذا كان قبل ذلك.
هنا تلتقي البوابات بالنسب. كل إجابة في 0plus تحمل نسبها، وذلك النسب يحمل نتائج البوابات لكل جدول مرّت به. وحين يسأل المدقق كيف تعرف أن هذا الرقم صحيح، لا تكون الإجابة حكاية عن الاجتهاد، بل استعلامًا: هذه القواعد، وهذه الإصدارات، وهذه نسبة الاجتياز، وهذه الدفعة، داخل هذا المحيط، وبلا تسريب إلى الذكاء الاصطناعي العام.
قاعدة الجودة التي تفشل بصمت ليست قاعدة، بل إخلاء مسؤولية لم يقرأه أحد.
لا شيء من هذا يتطلب أن يغادر سجل واحد بيئتك. فالبوابات ومنطقة الحجر وسجل التدقيق كلها تعمل داخل المحيط، والحد الذي يُبقي البيانات خاصة هو نفسه الذي يُبقيها نظيفة. تحققٌ أعلى المجرى، وفشلٌ بصوت مسموع، وحجرٌ له مالك، وسجل تدقيق يُكتب لحظة وقوعه. البيانات الرديئة ستظل تصل، لكنها تتوقف عن الانتشار.



