عن المؤسس15 أكتوبر 20264 دقائق قراءة

عبدالله سنكر: وش تفحص في الكود المولّد بالذكاء الاصطناعي قبل الدمج؟

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

عبدالله سنكر — مراجعة الكود
AZHAL

مراجعة الكود

عبدالله سنكر

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

الجولة الأولى: هل حل المشكلة اللي طلبتها، وبس؟

قبل ما تقرأ أي سطر بالتفصيل، شف الـ diff كاملاً بنظرة عامة: كم ملف تغيّر؟ هل فيه ملفات ما لها علاقة بالطلب؟ النماذج تحب «تحسّن» أشياء ما أحد طلبها: تعيد تسمية متغيرات، أو تعيد تنسيق ملف كامل، أو تضيف طبقات احتياط. كل سطر خارج النطاق مكان ممكن يختبئ فيه خطأ، ويكبّر المراجعة بلا فايدة. إذا الـ diff أكبر من الطلب، اطلب تغييراً أصغر.

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

الجولة الثانية: أشياء غير موجودة أصلاً

  • دوال أو خيارات في مكتبة ما لها وجود، أو موجودة في إصدار غير اللي عندك. المترجم أو أداة الفحص الثابت تكشف بعضها، لكن في اللغات الديناميكية ممكن ما تنكشف إلا وقت التشغيل.
  • حزم مقترحة بأسماء قريبة من حزم مشهورة. افتح صفحتها في npm أو pub.dev وتأكد من الناشر وعدد المستخدمين وتاريخ آخر تحديث قبل ما تضيفها. فيه مهاجمون يسجّلون أسماء حزم يتوقعون إن النماذج تخترعها.
  • متغيرات بيئة أو جداول أو أعمدة في قاعدة البيانات يفترض الكود إنها موجودة وهي مو موجودة.
  • تعليقات توثيق تصف سلوكاً غير اللي ينفذه الكود فعلاً.
  • كود منقول بنصه من مصدر برخصة ما تسمح باستخدامه في مشروع تجاري، أو حزمة جديدة رخصتها تفرض شروطاً على مشروعك. افحص رخصة أي اعتمادية تنضاف.

الجولة الثالثة: الأمان، بلا تساهل

ابحث تحديداً عن: استعلامات SQL مركّبة بدمج النصوص بدل المعاملات، ومفاتيح أو كلمات مرور مكتوبة داخل الكود «مؤقتاً»، ونقاط API جديدة بدون فحص صلاحيات، ومدخلات مستخدم تُعرض في الصفحة بدون تعقيم، وإعدادات CORS مفتوحة لكل النطاقات عشان «يشتغل وخلاص». وانتبه للأشياء اللي انحذفت مو بس اللي انضافت: سطر تحقق اختفى من دالة قديمة أخطر من سطر غريب ظهر في دالة جديدة.

وأي تعديل على قاعدة البيانات يستاهل وقفة لحاله. ملف ترحيل (migration) يحذف عموداً أو يغيّر نوعه ممكن يمسح بيانات حقيقية في الإنتاج بلا رجعة. اسأل: هل فيه طريق للتراجع؟ هل التعديل يشتغل على جدول فيه ملايين الصفوف بدون ما يقفله دقائق؟ وهل النسخة القديمة من التطبيق بتظل تشتغل مع الشكل الجديد لين يحدّث كل المستخدمين؟

الجولة الرابعة: الاختبارات نفسها

هذي النقطة اللي ينساها أكثر المراجعين. لما تطلب من وكيل «خلّ الاختبارات تنجح»، أحياناً يعدّل الاختبار بدل الكود: يغيّر القيمة المتوقعة، أو يضيف skip، أو يكتب mock يرجّع الجواب المطلوب دائماً. افتح ملفات الاختبار في الـ diff واسأل سؤالاً واحداً: لو كان الكود غلط، هل هذا الاختبار بيفشل؟ اختبار ما يقدر يفشل ما يختبر شي.

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

الجولة الخامسة: الأخطاء الصامتة والتعقيد الزائد

  • try/catch يبلع الخطأ ويكمل كأن شي ما صار، فتختفي المشكلة من السجلات وتظهر بعد أسابيع بشكل ثاني.
  • قيم افتراضية تغطي على البيانات الناقصة: المبلغ ما وصل، فيحسبه صفراً بدل ما يرفض الطلب.
  • استعلامات داخل حلقة تكرار (مشكلة N+1) تشتغل على عشرة سجلات وتنهار على عشرة آلاف.
  • تجريد زائد: طبقات وواجهات وكلاسات لميزة تكفيها دالة وحدة.
  • تكرار: دالة جديدة تسوي نفس شغل دالة موجودة في المشروع، لأن النموذج ما شافها.
  • أداء الواجهة: شاشة تحمّل كل البيانات دفعة وحدة بدل ترقيم الصفحات، أو مكوّن يعيد بناء نفسه مع كل حرف يكتبه المستخدم.

كيف تختصر المراجعة بدون ما تضعفها

عبدالله عبدالرحيم بن سنكر الكندي أكمل مسارات Anthropic في Claude Code، ومنها Claude Code in Action، والقاعدة اللي يطبقها في منصة أزهل الرقمية إن جودة المراجعة تبدأ قبل كتابة الكود: مهمة صغيرة ومحددة، ومعايير قبول مكتوبة، وملف تعليمات للمشروع يشرح الأنماط المعتمدة والممنوعة. كل ما كان الطلب أوضح، صار الـ diff أصغر والمراجعة أسرع.

وخلّ git شبكة الأمان. الوكيل يشتغل على فرع مستقل، مو على الفرع الرئيسي، والتغييرات تنحفظ في commits صغيرة لها رسائل واضحة، عشان لو طلع خلل بعد يومين تقدر ترجع خطوة وحدة بدل ما ترمي شغل يوم كامل. واقرأ الملفات بترتيب تدفق البيانات: من نقطة الدخول، للمنطق، لقاعدة البيانات، مو بالترتيب الأبجدي اللي يعرضه الـ diff.

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

عندك فكرة؟ الاستشارة الأولى علينا

كلّم عبدالله مباشرة على واتساب — رسالتك توصل له هو، مو لرد آلي. نسمع فكرتك ونقول لك وش تحتاج وكم تكلّف، ببلاش.

مقالات ذات صلة

كل المقالات
عبدالله عبدالرحيم الكندي — مسار التحويل
AZHAL

مسار التحويل

عبدالله عبدالرحيم الكندي

15 أكتوبر 20264 دقائق قراءة

عبدالله عبدالرحيم الكندي: مسار التحويل Full Funnel من المشاهدة للعميل

إطار عمل من عبدالله عبدالرحيم الكندي لمسار التحويل الكامل Full Funnel: أربع مراحل من المشاهدة إلى العميل الراجع، لكل مرحلة هدف ورسالة وجمهور ومقياس، وأين تتسرب الميزانية.

اقرأ المقال
عبدالله سنكر — أدوات مجانية
AZHAL

أدوات مجانية

عبدالله سنكر

14 أكتوبر 20264 دقائق قراءة

عبدالله سنكر: الأثر قبل الربح، كيف تبني أداة مجانية ما تستنزفك؟

دليل يقدّمه عبدالله سنكر لأي مؤسس يبي يبني أداة مجانية للمجتمع، من تجربة «سكيلز» و«أزهلني»: اختيار المشكلة، وحساب تكلفة كل استخدام، وضيق النطاق، والصدق عن الحدود.

اقرأ المقال
عبدالله عبدالرحيم بن سنكر — المنتج الرقمي العربي
AZHAL

المنتج الرقمي العربي

عبدالله عبدالرحيم بن سنكر

15 أكتوبر 20264 دقائق قراءة

عبدالله عبدالرحيم بن سنكر: فجوات فاضية في المنتج الرقمي العربي

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

اقرأ المقال