قائمة تحقّق الجاهزية للإنتاج لتطبيق بناه الذكاء الاصطناعي
هذه هي القائمة التي نمرّ عليها في الفحص المدفوع، وننشرها لأن معظمها تستطيع تنفيذه بنفسك في بعد ظهيرة واحدة. وهي مرتَّبة بحسب ما يؤلم أولًا، لا بحسب ما هو أسهل.
مجانًا بلا تسجيل، وبلا بريد إلكتروني
قبل أي شيء آخر: ما المكشوف
هذه هي البنود التي يكون الضرر فيها قد وقع بالفعل حين تنتبه، فتأتي أولًا مهما كانت الطريقة التي بُني بها تطبيقك.
- ابحث عن المفاتيح في تاريخ مستودعك، لا في الملفات الحالية فقط. فالسرّ الذي أُودع مرة ثم حُذف لاحقًا لا يزال في التاريخ ولا يزال يعمل.
- افتح أدوات المطوّر في المتصفح على موقعك أنت، وانظر في تبويب الشبكة، وتحقّق ممّا تحتويه حزمة العميل. فكل ما يستطيع المتصفح قراءته يستطيع غريب قراءته.
- خذ رابطًا يعرض بياناتك أنت، وسجّل الخروج، ثم افتحه مرة أخرى. فإن ظلّ يعمل، فبيانات كل مستخدم آخر تعمل بالطريقة نفسها.
- غيّر المعرّف في ذلك الرابط إلى معرّف شخص آخر. هذه أشيع ثغرة على الإطلاق في الكود المولَّد، لأن المولّد طُلب منه عرض البيانات، لا التحقّق ممّن يطلبها.
- تحقّق ممّا تقوله صفحات الأخطاء عندك. فأثر الاستدعاءات في الإنتاج يخبر الغريب بشكل قاعدة بياناتك.
ثم: ما الذي يحدث حين يتوقّف
- أوقِف العملية بالقوة وراقب. هل تعود من تلقاء نفسها، أم تبقى ميتة حتى ينتبه أحد؟
- هل كنت ستعرف؟ ليس «هل توجد لوحة معلومات» — بل هل ستصلك رسالة، على جهاز تنظر إليه، قبل أن يكتب إليك عميل؟
- انشر شيئًا معطّلًا عن قصد، في نسخة. كم يستغرق إرجاع النسخة السابقة، وهل تعرف الأمر دون أن تبحث عنه؟
- اكتب ما الذي يحدث إن انقطعت خدمة المزوّد الوحيد الذي تعتمد عليه. قد تقرّر أن تقبل ذلك؛ والمقصود أن تقرّر.
ثم: هل تنجو بياناتك
هذا هو البند الذي يكون الناس أكثر ثقة فيه وأكثر خطأً فيه، لأن النسخة الاحتياطية موجودة عادةً ولم تُستخدَم قط.
- استرجع نسخة احتياطية إلى بيئة مؤقتة. افعل ذلك فعلًا. فالنسخة الاحتياطية التي لم تُختبَر ليست نسخة احتياطية — بل ملف تتمنّى بشأنه.
- تحقّق إلى أي مدى ترجع النسخ الاحتياطية في الزمن، وكم مرّة تعمل. «كل ليلة ولسبعة أيام» خيار؛ أمّا ألّا تعرف فليس خيارًا.
- تحقّق من أن النسخة الاحتياطية ليست مخزَّنة فقط في الحساب نفسه الذي يحوي الشيء المنسوخ.
- إن كان لترحيل قاعدة بياناتك مسار تراجع، فاقرأه. فالتراجع الذي يحذف عمودًا لا يزال النشر الحيّ يحتاجه هو فقدان بيانات باسم لطيف.
ثم: الأشياء التي تنتهي صلاحيتها من تلقاء نفسها
- شهادة TLS. إن لم تكن تُجدَّد تلقائيًا، فضع تاريخ انتهائها في تقويمك الآن — وإلا فستنتهي صلاحيتها في عطلة نهاية أسبوع.
- تجديد النطاق، وهل البطاقة المحفوظة لا تزال سارية.
- مفاتيح الواجهات البرمجية ورموز OAuth التي لها تاريخ انتهاء، وخصوصًا لدى مزوّدي الدفع والبريد.
- المستويات المجانية التي بنيت عليها. فهي تتغيّر، والتغيير يصل في بريد إلكتروني لن تقرأه.
ثم: بنود الصحّة المملّة
- لكل نداء خارجي مهلة زمنية. فالطلب بلا مهلة لا يفشل — بل يعلّق، ويأخذ العملية معه.
- وإعادة المحاولة محدودة العدد، ولا تغلّف إلا عمليات يأمَن تكرارها. فإعادة محاولة بلا حدّ على «أرسل المال» ليست ميزة مرونة.
- تحديد لمعدّل الطلبات على كل ما يستطيع غريب استدعاءه، وخصوصًا النموذج في صفحتك التسويقية.
- اختبر ما الذي يحدث مع مدخل كبير جدًا وآخر غريب جدًا — رمز تعبيري، وعلامة اقتباس مفردة، ولصق بحجم 10MB.
- وإن كان بإمكان شخصين أن يتصرّفا في اللحظة نفسها، فاختبر ذلك، لا بديلًا متتابعًا عنه.
أخيرًا: البند الذي لا يكتبه أحد
هل يستطيع شخص غيرك تشغيل هذا؟ إن كان تطبيقك لا يُنشَر إلا من حاسوبك المحمول، وبمفاتيحك أنت، وبخطوات تعيش في رأسك، فالمخاطرة لم تعد تقنية. اكتب دليل التشغيل — كيف يُشغَّل، وكيف يُنشَر، وكيف يُتراجَع عنه — وسلّمه إلى شخص ليتّبعه بينما لا تقول أنت شيئًا. وأي موضع يتعثّر فيه هو الحالة الحقيقية لتوثيقك.
إن كنت تفضّل أن يفعل هذا شخص آخر
هذا هو «فحص الإنتاج»: نمرّ على هذه القائمة على قاعدة الكود عندك وعلى المكان الذي تعمل فيه، ونكتب ما الذي سيتعطّل أولًا، وكم يكلّف كل إصلاح، وبأي ترتيب تُنفَّذ الإصلاحات. $450، وخمسة أيام عمل، والتقرير لك في الحالتين.
أسئلة يسألها الناس أولًا
هل هذه القائمة خاصة بالتطبيقات المبنية بالذكاء الاصطناعي؟
القائمة ليست كذلك، لكن ترتيبها كذلك. هذه هي الفحوص التي يرسب فيها الكود المولَّد أكثر من غيرها، موضوعة بالترتيب الذي يهمّ حين يكون الشيء يعمل بالفعل ويحمل مستخدمين، لا بالترتيب الذي يستعمله كتاب دراسي.
كم يستغرق المرور عليها؟
قسم الانكشاف يأخذ بعد ظهيرة واحدة. أمّا البقية فتعتمد على ما تجده — وألّا تجد شيئًا نتيجة تستحق بحدّ ذاتها.
هل عليّ التسجيل في شيء لأقرأ هذا؟
لا. القائمة كلها على هذه الصفحة. لا تنزيل، ولا بوابة بريد إلكتروني، ولا ملف PDF.
بقية ما نفعله
- فحص الإنتاج — يعمل. والناس يستخدمونه. ولم يتحقّق أحد قط ممّا يحدث حين لا يعمل — حين تمتلئ قاعدة…
- اجعله جاهزًا للإنتاج — لشيء بُني بسرعة وصار الناس يعتمدون عليه الآن. رقم واحد ثابت، يُتَّفق عليه قبل أن يبدأ أي…
- أبقِه يعمل — الجزء الذي لا يريد أحد أن يتولّاه. تطبيقك يعمل، ولا بدّ من أحد ينتبه حين يتوقّف، ويجدّد ما…
- ابنِه على مراحل — من فكرة، أو من مشروع تعثّر. التسعير لمرحلة واحدة مقدَّمًا والدفع لكل مرحلة، وتبقى مالكًا لكل…
- منتجاتنا نحن — ما نبنيه لأنفسنا، ونشغّله.