Skills: مهارات إعادة الهيكلة

آخر تحديث: 2026-08-31

إعادة الهيكلة ليست إعادة كتابة — بل تحسين هيكل الكود دون تغيير السلوك. المهارات تجعل إعادة الهيكلة منهجية.


1. تحديد روائح الكود

(1) روائح الكود الشائعة

الرائحة نمط Grep المخاطر
دالة طويلة أسطر > 50 🟡
كود مكرر تشابه > 80% 🟡
تعشيش عميق مستوى تعشيش > 3 🟡
أرقام سحرية ثوابت مشفرة بشكل ثابت 🟢
صنف إلهي دوال > 20 🔴
تبعية دائرية استيرادات متبادلة 🔴

(2) الكشف التلقائي

YAML
---
name: smell-detector
description: "كشف روائح الكود"
tools:
  - Grep
  - Glob
  - Read
---
MARKDOWN
## تدفق الكشف
1. Glob للحصول على قائمة الملفات
2. Grep للبحث عن أنماط روائح الكود
3. Read للتأكيد بعمق
4. إخراج تقرير مرتب حسب الخطورة

2. استراتيجية إعادة الهيكلة

(1) توظيف تقنيات إعادة الهيكلة

الرائحة تقنية إعادة الهيكلة التعقيد
دالة طويلة استخراج دالة 🟢 منخفض
كود مكرر استخراج دالة/طريقة القالب 🟡 متوسط
تعشيش عميق شروط حراسة/نمط الاستراتيجية 🟡 متوسط
أرقام سحرية استخراج ثابت 🟢 منخفض
صنف إلهي تقسيم المسؤوليات 🔴 عالي
تبعية دائرية إدخال واجهة/وسيط 🔴 عالي

(2) تقييم مخاطر إعادة الهيكلة

TEXT 📖 للعرض فقط
مصفوفة مخاطر إعادة الهيكلة
           تأثير صغير   تأثير كبير
تغيير صغير  🟢 آمن      🟡 يحتاج اختبار
تغيير كبير  🟡 يحتاج مراجعة  🔴 يحتاج خطوات تدريجية

(3) مبادئ ترتيب إعادة الهيكلة

MARKDOWN
## ترتيب إعادة الهيكلة
1. مخاطر منخفضة قبل العالية (استخراج ثوابت → استخراج دوال → تقسيم أصناف)
2. المحلي قبل العام (مستوى الدالة → مستوى الصنف → مستوى الوحدة)
3. كل خطوة قابلة للتحقق (خطوات صغيرة، شغّل الاختبارات في كل خطوة)
4. قابل للتوقف في أي وقت (الكود يجب أن يعمل بعد أي خطوة)

3. عملية إعادة الهيكلة الآمنة

(1) التحضير قبل إعادة الهيكلة

MARKDOWN
## الفحوصات المسبقة
1. Bash: شغّل مجموعة الاختبارات الكاملة، أكد نجاح خط الأساس
2. Bash: git commit للحالة الحالية (نقطة لقطة)
3. Read: افهم السياق الكامل لهدف إعادة الهيكلة
4. حدد جميع مواقع الاستدعاء (من يعتمد على هذا الكود)

(2) تنفيذ إعادة الهيكلة

TEXT 📖 للعرض فقط
حلقة إعادة الهيكلة الآمنة
┌──────────────────┐
│ 1. تعديل صغير     │
│ 2. تشغيل الاختبارات │
│ 3. الاختبارات ناجحة؟ │
│    ├─ نعم → استمر  │
│    └─ لا → تراجع   │
└──────────────────┘

(3) التحقق بعد إعادة الهيكلة

MARKDOWN
## قائمة التحقق
- [ ] مجموعة الاختبارات الكاملة ناجحة
- [ ] السلوك الوظيفي لم يتغير
- [ ] الكود أبسط/أنظف
- [ ] لا TODO/FIXME جديدة
- [ ] لا تبعيات دائرية

4. ممارسة مهارة إعادة الهيكلة

▶ مثال: استخراج دالة آمن

تحتاج Alice لإعادة هيكلة دالة طويلة من 200 سطر:

YAML
---
name: safe-extract-function
description: "استخراج دالة آمن"
tools:
  - Read
  - Edit
  - Grep
  - Bash
---
MARKDOWN
## تدفق الاستخراج
1. Read لتحليل الدالة الطويلة، حدد كتل المنطق المستقلة
2. اذكر خطة الاستخراج (أي أسطر → اسم الدالة الجديدة)
3. نفّذ خطوة بخطوة:
   a. Edit لإنشاء دالة جديدة أسفل الأصلية
   b. Edit لتعديل الدالة الأصلية لاستدعاء الدالة الجديدة
   c. Bash لتشغيل الاختبارات
4. بعد جميع الاستخراجات، شغّل مجموعة الاختبارات الكاملة

قال Bob: "أكبر خوف في إعادة الهيكلة هو تعطيل الوظائف أثناء التعديل — اتخاذ خطوات صغيرة والتحقق في كل خطوة أكثر أمانًا ب десять آلاف مرة من تغيير كل شيء دفعة واحدة ثم الاختبار في النهاية."


❓ الأسئلة الشائعة

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

📖 ملخص


📝 تمارين

  1. أساسي (⭐): أنشئ مهارة كشف روائح كود تكشف 3 مشاكل شائعة على الأقل.
  2. متوسط (⭐⭐): أنشئ مهارة استخراج دالة آمنة تنفذ تدفق الاستخراج بخطوات صغيرة + التحقق التدريجي.
  3. متقدم (⭐⭐⭐): أنشئ مهارة إعادة هيكلة ذكية تكشف روائح الكود تلقائيًا، وتختار تقنيات إعادة الهيكلة، وتنفذ بترتيب آمن، وتُخرج تقارير مقارنة قبل/بعد.
Web-Tutorial.com

فريق Web-Tutorial التقني

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

100%