تصحيح الكود المُنتج بالذكاء الاصطناعي
مراجعة الكود المُنتج بالذكاء الاصطناعي
4 دقيقة للقراءة
الكود المُنتج بالذكاء الاصطناعي يتطلب مراجعة دقيقة قبل النشر. يعلم هذا الدرس تقنيات المراجعة المنهجية لالتقاط المشاكل مبكراً.
عقلية المراجعة
ثق ولكن تحقق:
├── AI يخطئ
├── السياق يمكن أن يُساء فهمه
├── الحالات الحدية غالباً ما تُفوت
├── الأمان يتطلب حكماً بشرياً
└── تأثيرات الأداء تحتاج مراجعة
لا تشحن أبداً كود AI غير مُراجع إلى الإنتاج.
قائمة التحقق للمراجعة
1. التحقق من المنطق
□ هل يحل المشكلة الفعلية؟
□ هل الخوارزمية صحيحة؟
□ هل الحالات الحدية مُعالجة؟
□ هل تدفق التحكم منطقي؟
□ هل الحلقات تنتهي بشكل صحيح؟
2. سلامة الأنواع
□ هل الأنواع معرّفة بشكل صحيح؟
□ هل هناك استخدام لـ 'any'؟
□ هل الـ generics مستخدمة بشكل مناسب؟
□ معالجة Null/undefined؟
□ تضييق الأنواع في الشروط؟
3. معالجة الأخطاء
□ هل الأخطاء مُلتقطة بشكل مناسب؟
□ هل رسائل الخطأ مفيدة؟
□ هل معالجة الأخطاء تمنع الانهيار؟
□ هل الأخطاء مُسجّلة؟
□ هل الأخطاء تُنشر بشكل صحيح؟
4. فحص الأمان
□ هل التحقق من المدخلات موجود؟
□ لا حقن SQL/NoSQL؟
□ لا ثغرات XSS؟
□ فحوصات المصادقة مناسبة؟
□ لا أسرار مكشوفة؟
5. فحص الأداء
□ لا حلقات غير ضرورية؟
□ استعلامات قاعدة البيانات مُحسّنة؟
□ استخدام الذاكرة معقول؟
□ لا عمليات حاجبة؟
□ التخزين المؤقت مُعتبر؟
أنماط كود AI الشائعة للمراقبة
النمط 1: الإفراط في الهندسة
AI أحياناً يولد حلولاً معقدة أكثر من اللازم.
النمط 2: فحوصات Null مفقودة
// مُنتج بالـ AI
function getUsername(user: User): string {
return user.profile.displayName.toUpperCase();
}
// ما هو مطلوب
function getUsername(user: User): string {
return user?.profile?.displayName?.toUpperCase() ?? 'Anonymous';
}
النمط 3: معالجة Async غير صحيحة
// مُنتج بالـ AI
async function processItems(items: Item[]) {
items.forEach(async (item) => { // ⚠️ لن ينتظر!
await processItem(item);
});
}
// مُصحح
async function processItems(items: Item[]) {
await Promise.all(items.map(item => processItem(item)));
}
سير عمل المراجعة
الخطوة 1: مسح سريع
- اقرأ مرة للفهم العام
- لاحظ أي شيء يبدو "غريباً"
الخطوة 2: تحليل عميق
- تحقق من منطق كل دالة
- تتبع تدفق البيانات
- تحقق من معالجة الأخطاء
الخطوة 3: تدقيق أمني
- ابحث عن نقاط الحقن
- تحقق من المصادقة/التفويض
- راجع كشف البيانات
الخطوة 4: اختبار ذهني
- تخيل مدخلات حالات حدية
- فكر في سيناريوهات الفشل
- فكر في الأداء على نطاق واسع
الخطوة 5: طلب التغييرات
اطلب من AI الإصلاح:
"في الكود المُنتج، لاحظت:
1. فحص null مفقود في السطر 23
2. ثغرة حقن SQL في السطر 45
3. مشكلة استعلام N+1 في getUserPosts
من فضلك أصلح هذه المشاكل."
مبدأ المراجعة: الـ 30 ثانية التي تقضيها في المراجعة يمكن أن توفر ساعات من التصحيح في الإنتاج. اجعل المراجعة عادة، ليست فكرة لاحقة.
في الدرس التالي، سنغطي الأخطاء الشائعة في الكود المُنتج بالـ AI وكيفية إصلاحها. :::