البرمجة والتطوير
توليد الكود وتصحيح الأخطاء
لقد أحدث الذكاء الاصطناعي تحولاً في تطوير البرمجيات. يتناول هذا الفصل تقنيات كتابة الأوامر لتوليد الأكواد وتصحيح الأخطاء والمراجعة وسير عمل التطوير.
يتفوق الذكاء الاصطناعي في توليد الأكواد وتصحيح الأخطاء والتوثيق - لكن راجع دائماً الكود المُولَّد من حيث الأمان والصحة وقابلية الصيانة. لا تنشر أبداً كوداً من الذكاء الاصطناعي دون اختباره.
توليد الأكواد
ما يجب فعله وما يجب تجنبه: أوامر الأكواد
❌ طلب غامض
اكتب دالة للتحقق من صحة البريد الإلكتروني.
✓ مواصفات كاملة
اكتب دالة Python للتحقق من صحة عناوين البريد الإلكتروني. المدخل: سلسلة نصية (بريد إلكتروني محتمل) المخرج: tuple[bool, str | None] - (صالح، رسالة_الخطأ) التعامل مع: سلسلة فارغة، None، أحرف يونيكود استخدم regex، وأضف تلميحات الأنواع وسلسلة التوثيق.
توليد الدوال
اكتب دالة ${language:Python} تقوم بـ ${description:التحقق من صحة عناوين البريد الإلكتروني}.
المتطلبات:
- المدخل: ${inputTypes:سلسلة نصية (بريد إلكتروني محتمل)}
- المخرج: ${outputType:قيمة منطقية ورسالة خطأ اختيارية}
- التعامل مع الحالات الحدية: ${edgeCases:سلسلة فارغة، None، أحرف يونيكود}
- الأداء: ${performance:قياسي}
يتضمن:
- تلميحات الأنواع/التعليقات التوضيحية
- سلسلة توثيق مع أمثلة
- التحقق من صحة المدخلات
- معالجة الأخطاءتوليد الأصناف/الوحدات
أنشئ صنف ${language:Python} لـ ${purpose:إدارة جلسات المستخدمين}.
تصميم الصنف:
- الاسم: ${className:SessionManager}
- المسؤولية: ${responsibility:التعامل مع دورة حياة جلسة المستخدم}
- الخصائص: ${properties:session_id، user_id، created_at، expires_at}
- الدوال: ${methods:create()، validate()، refresh()، destroy()}
المتطلبات:
- اتبع نمط ${designPattern:Singleton}
- تضمين التغليف المناسب
- إضافة سلاسل توثيق شاملة
- تضمين مثال للاستخدام
الاختبار:
- تضمين هيكل اختبارات الوحدةتوليد نقاط نهاية API
أنشئ نقطة نهاية REST API لـ ${resource:ملفات تعريف المستخدمين}.
الإطار: ${framework:FastAPI}
الطريقة: ${method:GET}
المسار: ${path:/api/users/{id}}
الطلب:
- الترويسات: ${headers:Authorization Bearer token}
- مخطط الجسم: ${bodySchema:غير متاح لـ GET}
- معاملات الاستعلام: ${queryParams:include_posts (منطقي)}
الاستجابة:
- النجاح: ${successResponse:200 مع كائن المستخدم}
- الأخطاء: ${errorResponses:401 غير مصرح، 404 غير موجود}
يتضمن:
- التحقق من صحة المدخلات
- فحص المصادقة
- معالجة الأخطاء
- مراعاة تحديد معدل الطلباتتصحيح الأخطاء
قم دائماً بتضمين السلوك المتوقع والسلوك الفعلي ورسالة الخطأ (إن وجدت). كلما قدمت سياقاً أكثر، كلما تمكن الذكاء الاصطناعي من تحديد السبب الجذري بشكل أسرع.
تحليل الأخطاء
صحح هذا الكود. يجب أن ${expectedBehavior:يعيد مجموع جميع الأرقام} لكنه بدلاً من ذلك ${actualBehavior:يعيد 0 لجميع المدخلات}.
الكود:
${code:الصق الكود الخاص بك هنا}
رسالة الخطأ (إن وجدت):
${error:لا يوجد}
خطوات التصحيح:
1. تحديد ما يحاول الكود فعله
2. تتبع التنفيذ مع المدخل المعطى
3. إيجاد نقطة التباين بين السلوك المتوقع والفعلي
4. شرح السبب الجذري
5. تقديم الإصلاح مع الشرحتفسير رسائل الخطأ
اشرح هذا الخطأ وكيفية إصلاحه:
الخطأ:
${errorMessage:الصق رسالة الخطأ أو تتبع المكدس هنا}
السياق:
- اللغة/الإطار: ${framework:Python 3.11}
- ما كنت أحاول فعله: ${action:قراءة ملف JSON}
- الكود ذو الصلة: ${codeSnippet:الصق الكود ذو الصلة}
قدم:
1. شرح بسيط للخطأ
2. السبب الجذري
3. إصلاح خطوة بخطوة
4. كيفية منع هذا في المستقبلتصحيح الأداء
هذا الكود بطيء. حلله وحسّنه:
الكود:
${code:الصق الكود الخاص بك هنا}
الأداء الحالي: ${currentPerformance:يستغرق 30 ثانية لـ 1000 عنصر}
الأداء المستهدف: ${targetPerformance:أقل من 5 ثوانٍ}
القيود: ${constraints:حد الذاكرة 512 ميغابايت}
قدم:
1. تحديد نقاط الاختناق
2. شرح سبب بطء كل منها
3. اقتراح التحسينات (مرتبة حسب التأثير)
4. عرض الكود المحسّن
5. تقدير التحسينمراجعة الأكواد
ما يجب فعله وما يجب تجنبه: أوامر مراجعة الأكواد
❌ طلب عام
راجع هذا الكود.
✓ معايير محددة
راجع هذا الكود لطلب سحب. تحقق من: 1. الصحة: الأخطاء، أخطاء المنطق، الحالات الحدية 2. الأمان: مخاطر الحقن، مشاكل المصادقة 3. الأداء: استعلامات N+1، تسريبات الذاكرة 4. قابلية الصيانة: التسمية، التعقيد التنسيق: 🔴 حرج / 🟡 مهم / 🟢 اقتراح
المراجعة الشاملة
راجع هذا الكود لطلب سحب.
الكود:
${code:الصق الكود الخاص بك هنا}
راجع من حيث:
1. **الصحة**: الأخطاء، أخطاء المنطق، الحالات الحدية
2. **الأمان**: الثغرات، مخاطر الحقن، مشاكل المصادقة
3. **الأداء**: عدم الكفاءة، استعلامات N+1، تسريبات الذاكرة
4. **قابلية الصيانة**: القراءة، التسمية، التعقيد
5. **أفضل الممارسات**: اتفاقيات ${framework:Python/Django}
نسّق مراجعتك كالتالي:
🔴 حرج: يجب إصلاحه قبل الدمج
🟡 مهم: يجب إصلاحه
🟢 اقتراح: من الجيد وجوده
💭 سؤال: يحتاج توضيحاًالمراجعة الأمنية
قم بمراجعة أمنية لهذا الكود:
الكود:
${code:الصق الكود الخاص بك هنا}
تحقق من:
- [ ] ثغرات الحقن (SQL، XSS، الأوامر)
- [ ] عيوب المصادقة/التفويض
- [ ] كشف البيانات الحساسة
- [ ] التبعيات غير الآمنة
- [ ] مشاكل التشفير
- [ ] ثغرات التحقق من المدخلات
- [ ] معالجة الأخطاء التي تسرب المعلومات
لكل اكتشاف:
- الخطورة: حرج/عالي/متوسط/منخفض
- الموقع: رقم السطر أو الدالة
- المشكلة: الوصف
- الاستغلال: كيف يمكن مهاجمته
- الإصلاح: العلاج الموصى بهإعادة الهيكلة
اكتشاف روائح الكود
حلل هذا الكود بحثاً عن روائح الكود وفرص إعادة الهيكلة:
الكود:
${code:الصق الكود الخاص بك هنا}
حدد:
1. الدوال الطويلة (اقترح الاستخراج)
2. الكود المكرر (اقترح تحسينات DRY)
3. الشروط المعقدة (اقترح التبسيط)
4. التسمية السيئة (اقترح أسماء أفضل)
5. الترابط الشديد (اقترح فك الترابط)
لكل مشكلة، أظهر الكود قبل وبعد.تطبيق أنماط التصميم
أعد هيكلة هذا الكود باستخدام نمط ${patternName:Factory}.
الكود الحالي:
${code:الصق الكود الخاص بك هنا}
الأهداف:
- ${whyPattern:فصل إنشاء الكائنات عن الاستخدام}
- ${benefits:سهولة الاختبار والتوسعة}
قدم:
1. شرح النمط
2. كيفية تطبيقه هنا
3. الكود المُعاد هيكلته
4. المقايضات للنظر فيهاالاختبار
توليد اختبارات الوحدة
اكتب اختبارات وحدة لهذه الدالة:
الدالة:
${code:الصق الدالة الخاصة بك هنا}
إطار الاختبار: ${testFramework:pytest}
غطِّ:
- المسار السعيد (مدخلات عادية)
- الحالات الحدية (فارغ، null، قيم حدية)
- حالات الخطأ (مدخلات غير صالحة)
- ${specificScenarios:الوصول المتزامن، مدخلات كبيرة}
التنسيق: نمط Arrange-Act-Assert
تضمين: أسماء اختبارات وصفيةتوليد حالات الاختبار
ولّد حالات اختبار لهذه الميزة:
الميزة: ${featureDescription:تسجيل المستخدم مع التحقق من البريد الإلكتروني}
معايير القبول: ${acceptanceCriteria:يمكن للمستخدم التسجيل، يتلقى بريداً إلكترونياً، يمكنه التحقق من الحساب}
قدم حالات الاختبار بهذا التنسيق:
| المعرف | السيناريو | بالنظر إلى | عندما | ثم | الأولوية |
|--------|----------|----------|------|-----|----------|
| TC01 | ... | ... | ... | ... | عالية |الهندسة المعمارية والتصميم
تصميم النظام
صمم نظاماً لـ ${requirement:تطبيق دردشة في الوقت الفعلي}.
القيود:
- الحمل المتوقع: ${expectedLoad:10,000 مستخدم متزامن}
- متطلبات زمن الاستجابة: ${latency:< 100 مللي ثانية لتسليم الرسائل}
- التوفر: ${availability:99.9%}
- الميزانية: ${budget:معتدلة، تفضيل المصادر المفتوحة}
قدم:
1. مخطط الهندسة المعمارية عالي المستوى (ASCII/نص)
2. أوصاف المكونات
3. تدفق البيانات
4. اختيارات التقنية مع المبررات
5. استراتيجية التوسع
6. المقايضات والبدائل المدروسةتصميم مخطط قاعدة البيانات
صمم مخطط قاعدة بيانات لـ ${application:منصة تجارة إلكترونية}.
المتطلبات:
- ${feature1:حسابات المستخدمين مع الملفات الشخصية والعناوين}
- ${feature2:كتالوج المنتجات مع الفئات والمتغيرات}
- ${feature3:الطلبات مع عناصر السطر وتتبع الدفع}
قدم:
1. وصف العلاقات بين الكيانات
2. تعريفات الجداول مع الأعمدة والأنواع
3. الفهارس للاستعلامات الشائعة
4. علاقات المفاتيح الأجنبية
5. استعلامات نموذجية للعمليات الرئيسيةتوليد التوثيق
توثيق API
ولّد توثيق API من هذا الكود:
الكود:
${code:الصق كود نقطة النهاية الخاصة بك هنا}
التنسيق: ${format:OpenAPI/Swagger YAML}
يتضمن:
- وصف نقطة النهاية
- مخططات الطلب/الاستجابة
- أمثلة على الطلبات/الاستجابات
- رموز الخطأ
- متطلبات المصادقةالتوثيق المضمن
أضف توثيقاً شاملاً لهذا الكود:
الكود:
${code:الصق الكود الخاص بك هنا}
أضف:
- سلسلة توثيق الملف/الوحدة (الغرض، الاستخدام)
- سلاسل توثيق الدوال/الدوال (المعاملات، القيم المرجعة، الاستثناءات، أمثلة)
- تعليقات مضمنة للمنطق المعقد فقط
- تلميحات الأنواع إذا كانت مفقودة
النمط: ${docStyle:Google}قوالب الأوامر من halaGPT
تصرف كمطور أول
أريدك أن تتصرف كمطور برمجيات أول. سأقدم كوداً وأطرح
أسئلة عنه. ستراجع الكود وتقترح تحسينات وتشرح المفاهيم
وتساعد في تصحيح الأخطاء. يجب أن تكون ردودك تعليمية
وتساعدني على أن أصبح مطوراً أفضل.
تصرف كمراجع أكواد
أريدك أن تتصرف كمراجع أكواد. سأقدم طلبات سحب مع
تغييرات في الكود، وستراجعها بدقة. تحقق من الأخطاء
ومشاكل الأمان ومشاكل الأداء والالتزام بأفضل الممارسات.
قدم ملاحظات بناءة تساعد المطور على التحسن.
تصرف كمهندس برمجيات
أريدك أن تتصرف كمهندس برمجيات. سأصف متطلبات النظام
والقيود، وستصمم هندسات قابلة للتوسع وسهلة الصيانة.
اشرح قرارات التصميم والمقايضات وقدم مخططات عند الحاجة.
دمج سير عمل التطوير
توليد رسائل الإيداع
ولّد رسالة إيداع لهذه التغييرات:
الفرق:
${diff:الصق git diff هنا}
التنسيق: Conventional Commits
النوع: ${commitType:feat}
قدم:
- سطر الموضوع (50 حرفاً كحد أقصى، صيغة الأمر)
- الجسم (ماذا ولماذا، ملفوف عند 72 حرفاً)
- التذييل (يشير إلى المشاكل إن وجدت)توليد وصف طلب السحب
ولّد وصف طلب سحب:
التغييرات:
${changes:اذكر تغييراتك أو الصق ملخص الفرق}
القالب:
## الملخص
وصف موجز للتغييرات
## التغييرات المُجراة
- التغيير 1
- التغيير 2
## الاختبار
- [ ] تمت إضافة/تحديث اختبارات الوحدة
- [ ] تم إكمال الاختبار اليدوي
## لقطات الشاشة (إذا كانت هناك تغييرات في الواجهة)
placeholder
## المشاكل ذات الصلة
يغلق #${issueNumber:123}الملخص
قم بتضمين السياق الكامل (اللغة، الإطار، القيود)، وحدد المتطلبات بدقة، واطلب تنسيقات إخراج محددة، واطلب الشروحات مع الكود، وضمّن الحالات الحدية للتعامل معها.
ما هو أهم عنصر يجب تضمينه عند طلب تصحيح الأخطاء من الذكاء الاصطناعي؟
الذكاء الاصطناعي شريك برمجة قوي - استخدمه للتوليد والمراجعة وتصحيح الأخطاء والتوثيق مع الحفاظ على حكمك المعماري.