المهارات debugging-strategies
📦

debugging-strategies

آمن

تطبيق استراتيجيات تصحيح منهجية

غالبا ما يبدو تصحيح أعطال البرمجيات المعقدة عشوائيا ومحبِطا. توفر هذه المهارة تقنيات تصحيح منهجية، وأدوات قياس الأداء، وأساليب تحليل السبب الجذري التي تحول الاستكشاف إلى عملية منهجية.

يدعم: Claude Codex Code(CC)
📊 69 كافٍ
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "debugging-strategies". My Node.js API returns 500 errors intermittently. The error says 'Cannot read property of undefined' but I cannot find where this happens.

النتيجة المتوقعة:

دعني أطبق تصحيحا منهجيا للعثور على مشكلة الخاصية غير المعرفة هذه.

## الخطوة 1: إعادة الإنتاج والملاحظة
- متى يحدث الخطأ؟ دائما أم عشوائيا؟
- أي نقطة نهاية API تسببه؟
- ما معلمات الطلب المرسلة؟

## الخطوة 2: جمع المعلومات
1. أضف تسجيلا استراتيجيا قبل نقطة التعطل المحتملة:
```javascript
console.log('Order data:', JSON.stringify(order, null, 2));
```
2. تحقق من أي خاصية قد تكون غير معرفة:
```javascript
console.log('Items:', order?.items);
console.log('User:', order?.user?.name);
```

## الخطوة 3: الفرضية
الفرضية: من المحتمل أن يحدث الخطأ عندما:
- تكون order.items غير معرفة لأنواع معينة من الطلبات
- تكون order.user فارغة للمستخدمين الضيوف

## الخطوة 4: الاختبار والتحقق
أضف فحوصات عدم القيم الفارغة وتحقق بعينات طلبات:
```javascript
const items = order?.items ?? [];
const userName = order?.user?.name ?? 'Guest';
```

هل ترغب أن أساعدك في تنفيذ هذا الإصلاح؟

استخدام "debugging-strategies". Help me debug a memory leak in my React application.

النتيجة المتوقعة:

دعني أوجهك خلال تصحيح تسرب ذاكرة في React بشكل منهجي.

## مرحلة إعادة الإنتاج
1. افتح Chrome DevTools > تبويب Memory
2. التقط لقطة ذاكرة (قبل)
3. نفّذ الإجراء المشتبه بالتسريب 10-20 مرة
4. التقط لقطة أخرى (بعد)
5. قارن اللقطات لتحديد الكائنات المحتجزة

## أنماط شائعة لتسرب الذاكرة في React
1. مستمعو أحداث غير مُلغى اشتراكهم
2. مؤقتات (setInterval) لا تُزال في تنظيف useEffect
3. إغلاقات تحتفظ بمراجع لنطاق المكوّن
4. مخازن عالمية تنمو بلا حدود

## خطوات تصحيح سريعة
```javascript
useEffect(() => {
const timer = setInterval(() => {
// ...
}, 1000);

// Cleanup function - CRITICAL for preventing leaks
return () => {
clearInterval(timer);
// Remove any subscriptions
};
}, []);
```

ما الأعراض التي تراها؟ ذاكرة عالية في DevTools أم أعطال فعلية؟

التدقيق الأمني

آمن
v5 • 1/21/2026

Static analysis detected 54 potential issues, all confirmed as false positives. The 'scripts' patterns are Go import statements in code examples. 'External_commands' are markdown backticks used for code formatting. 'Weak cryptographic algorithm' flags are triggered by Go standard library package names (crypto/pprof). 'Network' URLs are GitHub source URLs and localhost debugging endpoints. All findings are legitimate documentation content with no security concerns.

2
الملفات التي تم فحصها
1,137
الأسطر التي تم تحليلها
0
النتائج
5
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude عرض سجل التدقيق →

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
21
المجتمع
100
الأمان
87
الامتثال للمواصفات

ماذا يمكنك بناءه

إصلاح أخطاء إنتاج مراوغة

تطبيق تقنيات التصحيح المنهجية لتتبع المشكلات صعبة إعادة الإنتاج في بيئات الإنتاج باستخدام التسجيل، وتحليل تتبع المكدس، والتصحيح التفاضلي.

تحسين أداء تطبيق بطيء

استخدام أدوات وتقنيات قياس الأداء لتحديد اختناقات الأداء وتسربات الذاكرة وأنماط الشيفرة غير الفعالة عبر تطبيقات JavaScript و Python و Go.

تعلّم أساليب تصحيح منظمة

إتقان المنهج العلمي للتصحيح، وتصحيح البطة المطاطية، وعزل المشكلات بشكل منهجي لتصبح أكثر فعالية في استكشاف أي مشكلة شيفرة.

جرّب هذه الموجهات

تصحيح خطأ محدد
أرى هذا الخطأ في تطبيقي: [insert error message and stack trace]. طبّق تقنيات التصحيح المنهجية لمساعدتي على تحديد السبب الجذري. مر عبر المنهج العلمي: الملاحظة، الفرضية، التجربة، التحليل.
تحليل اختناق الأداء
تطبيقي من نوع [application type] يعمل ببطء. ساعدني في استخدام أدوات قياس الأداء لتحديد الاختناق. ضمّن تعليمات خطوة بخطوة لاستخدام [Chrome DevTools / cProfile / pprof] لمعرفة أين يُقضى الوقت.
تصحيح حالة سباق
لدي خطأ متقطع يحدث أحيانا فقط ويبدو مرتبطا بالعمليات غير المتزامنة. وجّهني خلال تصحيح حالات السباق باستخدام تسجيل التتبع وتحليل التوقيت.
استخدام git bisect لانحدار الأداء
ظهر خطأ بين الإصدار العامل [version A] والإصدار الحالي [version B]. وجّهني خلال استخدام git bisect للعثور على الالتزام الدقيق الذي أدخل الانحدار.

أفضل الممارسات

  • أعد إنتاج الخطأ بشكل متسق قبل محاولة الإصلاحات. دون إعادة إنتاج متسقة، لا يمكنك التحقق من الحل.
  • اعزل المشكلة بإزالة الشيفرة غير ذات الصلة. أنشئ حالة إعادة إنتاج مصغرة توضح المشكلة.
  • استخدم المصحح، وليس فقط عبارات console.log. نقاط التوقف تتيح لك فحص حالة البرنامج في أي نقطة.

تجنب

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

الأسئلة المتكررة

ما المنهج العلمي للتصحيح؟
يتضمن المنهج العلمي للتصحيح: (1) ملاحظة السلوك الفعلي والخطأ، (2) صياغة فرضية حول ما يسببه، (3) تصميم تجربة لاختبار الفرضية وتنفيذها، (4) تحليل ما إذا كانت النتائج تثبت النظرية أو تنفيها، (5) التكرار بفرضية جديدة حتى تجد السبب الجذري.
كيف أصحح مشكلات الإنتاج بأمان؟
لا تعدل شيفرة الإنتاج مباشرة. بدلا من ذلك: (1) أضف تسجيلات لالتقاط مزيد من المعلومات، (2) استخدم أعلام الميزات لاختبار الإصلاحات، (3) انشر أولا في بيئة التجهيز للتحقق، (4) استخدم أدوات تتبع الأخطاء مثل Sentry، (5) اعمل محليا على بيانات إنتاج مجهولة الهوية.
ما هو تصحيح البحث الثنائي؟
تصحيح البحث الثنائي يضيّق نطاق الشيفرة المشكلة عبر تقسيم مساحة البحث إلى نصفين بشكل متكرر. علّق نصف الشيفرة لترى إن كان الخطأ لا يزال يحدث. واصل التضييق حتى تحدد السطر أو القسم الدقيق الذي يسبب المشكلة.
كيف أصحح الأخطاء المتقطعة؟
الأخطاء المتقطعة تتطلب تسجيلا مكثفا والتقاطا للحالة. أضف سجلات تفصيلية تُظهر التوقيت وبيانات الإدخال وانتقالات الحالة. ابحث عن أنماط في وقت حدوث الخطأ. تحقق من حالات السباق في الشيفرة غير المتزامنة واعتمادات التوقيت.
ما هو تصحيح البطة المطاطية؟
تصحيح البطة المطاطية هو شرح شيفرتك ومشكلتك بصوت عال، سطرا بسطر، لبطة مطاطية أو لزميل. فعل التعبير عن المشكلة غالبا ما يكشفها. يفرض عليك الإبطاء والتفكير في كل خطوة.
كيف أستخدم git bisect لمعرفة متى أُدخل الخطأ؟
Git bisect يؤتمت البحث عن الالتزام الذي أدخل خطأ. نفّذ 'git bisect start'، وضع علامة لالتزام معروف بأنه جيد باستخدام 'git bisect good <commit>'، وضع علامة لالتزام معروف بأنه سيئ باستخدام 'git bisect bad <commit>'. سيقوم Git بالتنقل إلى التزامات وسطية لتختبرها. علّم كل واحدة بأنها 'good' أو 'bad' حتى يحدد الالتزام الدقيق.

تفاصيل المطور

بنية الملفات

📄 SKILL.md