التواصل مع الدعم

نردّ عبر البريد الإلكتروني، عادةً خلال يومين.

يفحص Google reCAPTCHA هذا الإرسال للحماية من إساءة الاستخدام؛ وتُرسَل بيانات إلى Google. لا يُحمَّل السكربت إلا عند فتح هذا النموذج.

→ كل المقالات

كم تعيش جملة خاطئة

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

في 27 أغسطس أطلقنا مدة البقاء في الصفحة. وبقيت الجملة.

كم ظلت جملة واحدة في صفحة «حول» خاطئة كُتبت الجملة 14 أغسطس، 22:41 إطلاق مدة البقاء 27 أغسطس، 17:53 صُحّحت الجملة 28 أغسطس، 21:57 13 يومًا صحيحة 28 ساعة خاطئة لم يكتشفها أي فحص: بل سؤال من قارئ

ثلاثة عشر يومًا صحيحة، وثماني وعشرون ساعة خاطئة

التواريخ دقيقة لأن المستودع يعرفها. تصل الجملة في الساعة 22:41 من 14 أغسطس. وتصل مدة البقاء، في ست فئات، في الساعة 17:53 من 27 أغسطس — ومن تلك الدقيقة يصبح النصف الثاني من الجملة خاطئًا. وتُصحَّح في الساعة 21:57 من 28 أغسطس.

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

لماذا لم يكن أي فحص ليكشفها

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

يمكن تخيّل فحص يبحث بـ grep في نص صفحة «حول» عن أسماء الميزات ويتحقق منها. سيكون طويلًا وهشًا، وستفوته مع ذلك الحالات المثيرة للاهتمام، لأن الجملة لم تذكر جدولًا. بل ذكرت سببًا: هذا يحتاج إلى لافتة موافقة. وذلك السبب كان قد كفّ بصمت عن الانطباق.

ما الذي أنهاها

سؤال. سأل أحدهم هل نعرض معدل الارتداد، وتطلبت الإجابة الصادقة قراءة الجملة بجانبها، وعندها انهارت.

وهي الآلية نفسها التي أزالت أربعة ادعاءات أخرى من هذه الصفحة في وقت سابق من هذا الشهر، وهي ليست آلية، بل حظ. الشيء الوحيد الذي يحسّن الاحتمالات هو صياغة الادعاء بدقة كافية تبقيه قابلًا للتحقق: لا «لا نقيس X، لأن Y»، بل «X ليس في هذه الصفحة» — جملة تصف الصفحة التي هي فيها لا الأسباب الكامنة وراءها.

ما يمكن تعميمه

الكود يتعفّن بصوت عالٍ. أما النص الذي يصف الكود فيتعفّن بصمت، وعادةً ما يتعفّن في اللحظة التي يتحسّن فيها الكود.

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

إعلان