سير عمل التطوير بمساعدة الذكاء الاصطناعي
في الفصول السابقة، تعلمنا كيفية استخدام بيئات التطوير المتكاملة المدعومة بالذكاء الاصطناعي لكتابة التعليمات البرمجية، وكيفية إدارة إصدارات الكود باستخدام Git، وكيفية تصميم وتنفيذ واجهات API. لكنك قد تواجه أسئلة مثل هذه عند البدء في مهمة تطوير حقيقية:
- "هذا المشروع يحتوي على آلاف الملفات. من أين أبدأ؟"
- "مديري طلب مني إضافة ميزة جديدة، لكنني لست على دراية بهذا الجزء من الكود."
- "لا أعرف أين يكمن الخطأ. الكود كثير جدًا."
- "أحتاج إلى إعادة هيكلة هذا الكود، لكنني أخشى أن أعطل شيئًا ما."
جوهر هذه الأسئلة هو: كيف تستخدم أدوات الذكاء الاصطناعي بكفاءة في سيناريوهات التطوير الحقيقية لإنجاز العمل؟
في هذا الدرس، سنتعلم كيفية بناء سير عمل تطوير منهجي بمساعدة الذكاء الاصطناعي بحيث يمكنك استخدام الذكاء الاصطناعي بكفاءة عبر سيناريوهات تطوير مختلفة. من خلال أمثلة ملموسة، سنوضح كيفية استخدام الذكاء الاصطناعي في تطوير الميزات الجديدة، وإصلاح الأخطاء، وإعادة هيكلة الكود، وغير ذلك.
💡 المتطلبات المسبقة
قبل دراسة هذا القسم، يُنصح بأن تفهم أولاً:
- أساسيات بيئة التطوير المتكاملة المدعومة بالذكاء الاصطناعي - إتقان الاستخدام الأساسي لبيئات التطوير المتكاملة المدعومة بالذكاء الاصطناعي
- سير عمل Git و GitHub - فهم إدارة إصدارات الكود
- استخدام النماذج الكبيرة للمساعدة في كتابة كود API - فهم المفهوم الأساسي للتطوير بمساعدة الذكاء الاصطناعي
📚 ما ستتعلمه
- فهم دور الذكاء الاصطناعي في عملية التطوير وحدود قدراته
- إتقان استراتيجيات التطوير بمساعدة الذكاء الاصطناعي لأنواع المشاريع المختلفة
- تعلم كيفية استخدام Claude Code في سيناريوهات مثل تطوير الميزات الجديدة وإصلاح الأخطاء وإعادة هيكلة الكود
- بناء قاعدة معرفية للمشروع لتحسين كفاءة التعاون مع Claude Code
- إتقان التقنيات العملية لتحسين كفاءة التعاون مع الذكاء الاصطناعي
1. فهم حدود قدرات الذكاء الاصطناعي
قبل أن نبدأ في استخدام الذكاء الاصطناعي للمساعدة في التطوير، نحتاج أولاً إلى فهم ما يمكن وما لا يمكن للذكاء الاصطناعي فعله. فقط عندها يمكننا بناء نموذج التعاون الصحيح.
1.1 ما يجيد الذكاء الاصطناعي فعله
فكر في الذكاء الاصطناعي كمساعد ذكي للغاية لا يزال بحاجة إلى تعليمات واضحة. يمكنه إنشاء هيكل كود بسرعة بناءً على وصفك، ويمكنه أيضًا قراءة آلاف الأسطر من الكود في ثوانٍ للعثور على الجزء الذي تحتاجه. إذا كانت هناك أخطاء نحوية واضحة أو ثغرات أمنية شائعة، يمكنه مساعدتك في اكتشافها أيضًا. المهام المتكررة مثل إعادة تسمية المتغيرات دفعة واحدة وتنسيق الكود وإنشاء تعليقات التوثيق مناسبة بشكل خاص لتسليمها إلى الذكاء الاصطناعي.
ببساطة، الذكاء الاصطناعي يجيد الأعمال التي لها قواعد واضحة ويمكن أتمتتها.
1.2 ما لا يجيد الذكاء الاصطناعي فعله
لكن الذكاء الاصطناعي لديه أيضًا قيوده. فهو لا يفهم منطق عملك. ما لم تخبره بالتفصيل، فلن يعرف كيف يعمل تدفق الطلبات في شركتك. كما أنه لا يستطيع اتخاذ قرارات مثل اختيار التقنيات أو تصميم البنية المعمارية التي تتطلب الموازنة بين التنازلات، لأن تلك تعتمد على خبرتك وفهمك للمشروع. الذكاء الاصطناعي أيضًا لا يعرف الاتفاقيات الخاصة بفريقك، مثل "يجب أن تحتوي جميع واجهات API على تسجيل" أو "يجب أن تستخدم رموز الأخطاء التعدادات." تحتاج إلى تكوين تلك القواعد أو إخباره صراحةً.
الأهم من ذلك، لا يمكن استخدام الكود الذي ينشئه الذكاء الاصطناعي مباشرة. يجب عليك مراجعته واختباره. قد ينشئ كودًا يبدو صحيحًا ولكنه في الواقع مشكل، وقد يتجاهل حالات حدية معينة.
1.3 كيف تتعاون مع الذكاء الاصطناعي
بمجرد أن تفهم حدود قدرات الذكاء الاصطناعي، يصبح نموذج التعاون واضحًا: أنت مسؤول عن تحديد ما يجب بناؤه واتخاذ القرارات وضمان الجودة؛ والذكاء الاصطناعي مسؤول عن تنفيذ أعمال البرمجة الملموسة وإيجاد المعلومات وإبراز المشكلات الواضحة.
الأمر يشبه العمل مع مطور مبتدئ. أنت تخبرهم بما يجب فعله، وهم ينفذونه، ثم تراجع الكود. الفرق هو أن الذكاء الاصطناعي ينفذ بشكل أسرع بكثير، لكن حكمه أضعف من حكم الإنسان.
2. استراتيجيات تطوير لأنواع المشاريع المختلفة
تتطلب أنواع المشاريع المختلفة أساليب تطوير واستراتيجيات استخدام ذكاء اصطناعي مختلفة. اختيار الاستراتيجية الصحيحة يمكن أن يحسن كفاءة التطوير بشكل كبير.
2.1 مشاريع جديدة تمامًا (البدء من الصفر)
خصائص المشروع:
- لا عبء تاريخي، لذا يمكنك التصميم بحرية
- تحتاج إلى إنشاء هيكل المشروع واتفاقيات الكود
- مناسب للتكرار السريع والتجربة والخطأ
سير العمل الموصى به:
الخطوة 1: تخطيط هيكل المشروع
قبل البدء في البرمجة، اطلب أولاً من الذكاء الاصطناعي المساعدة في تخطيط هيكل المشروع والخيارات التقنية:
أريد إنشاء تطبيق لإدارة المهام بالميزات التالية:
- تسجيل المستخدمين وتسجيل الدخول
- إنشاء المهام وتحريرها وحذفها
- فئات المهام والوسوم
- تذكيرات المهام
ساعدني من فضلك:
1. أوصِ بمكدس تقني مناسب
2. صمم هيكل أدلة المشروع
3. خطط مخطط قاعدة البياناتالخطوة 2: بناء الإطار الأساسي
بناءً على الخطة، اطلب من الذكاء الاصطناعي إنشاء هيكل المشروع الأساسي:
بناءً على الخطة التي ناقشناها للتو، ساعدني في:
1. إنشاء هيكل أدلة المشروع
2. تهيئة ملفات الإعداد (package.json، .env، إلخ)
3. إنشاء كود الخادم الأساسيالخطوة 3: تنفيذ الميزات واحدة تلو الأخرى
نفذ وحدات الميزات واحدة تلو الأخرى حسب الأولوية:
الآن نفذ ميزة تسجيل المستخدم بالمتطلبات التالية:
- التسجيل بالبريد الإلكتروني وكلمة المرور
- تخزين كلمات المرور بشكل مشفر
- التحقق من البريد الإلكترونيالنقاط الرئيسية:
- ضع اتفاقيات الكود مبكرًا حتى ينشئ الذكاء الاصطناعي كودًا يتبعها
- اختبر وتحقق من كل وحدة ميزات فور اكتمالها
- حافظ على تحديث توثيق المشروع في الوقت المناسب
2.2 مشاريع ناضجة (قواعد أكواد كبيرة قائمة)
خصائص المشروع:
- قاعدة كود كبيرة مع اتفاقيات تاريخية
- تحتاج إلى الحفاظ على تناسق أسلوب البرمجة
- يجب أن تراعي التغييرات نطاق التأثير
سير العمل الموصى به:
الخطوة 1: فهم هيكل المشروع
قبل تغيير الكود، اطلب أولاً من الذكاء الاصطناعي المساعدة في فهم المشروع:
هذا مشروع تجارة إلكترونية، وأحتاج إلى إضافة ميزة كوبونات.
ساعدني من فضلك:
1. تحليل هيكل المشروع العام
2. العثور على الكود المتعلق بالطلبات
3. الاطلاع على كيفية تنفيذ الميزات المشابهة الأخرىالخطوة 2: البحث عن كود مرجعي
اطلب من الذكاء الاصطناعي إيجاد تطبيقات مشابهة في المشروع كمراجع:
ابحث عن كيفية تنفيذ الميزات الترويجية الأخرى في المشروع، مثل خصم المبلغ الكامل والخصوماتالخطوة 3: اتبع الأسلوب القائم
اطلب من الذكاء الاصطناعي تنفيذ الميزة الجديدة بأسلوب الكود القائم:
نفذ ميزة الكوبونات بالرجوع إلى كيفية تنفيذ خصم المبلغ الكامل.
حافظ على نفس أسلوب الكود وهيكل الأدلة.النقاط الرئيسية:
- افهم أولاً، ثم غيّر الأشياء، حتى لا تتلف البنية المعمارية القائمة
- حافظ على تناسق أسلوب البرمجة
- اختبر الوظائف ذات الصلة بعد التغيير
2.3 نماذج أولية سريعة (التحقق من الأفكار)
خصائص المشروع:
- السرعة هي الأهم، وجودة الكود أقل أهمية
- يُستخدم للتحقق من أفكار المنتج أو المناهج التقنية
- قد يتم التخلي عنه لاحقًا أو إعادة كتابته
سير العمل الموصى به:
صِف المتطلبات مباشرة ونفذ بسرعة:
أنشئ تطبيق قائمة مهام بسيط بالمتطلبات التالية:
- إضافة المهام وحذفها ووضع علامة مكتمل عليها
- تخزين البيانات محليًا
- حافظ على واجهة المستخدم بسيطة، طالما أنها تعملالتكرار السريع:
أضف بحثًا
حوّله إلى مظهر داكن
أضف فئات المهامالنقاط الرئيسية:
- لا تقلق كثيرًا بشأن جودة الكود أو الاتفاقيات
- تحقق من الأفكار بسرعة وعدّل الاتجاه في الوقت المناسب
- إذا نجح النموذج الأولي، فسيحتاج إلى إعادة هيكلة لاحقًا
2.4 مشاريع الصيانة (إصلاح الأخطاء في الغالب)
خصائص المشروع:
- الكود مستقر بالفعل، والمهمة الرئيسية هي إصلاح المشكلات
- تحتاج إلى تحديد المشكلات بسرعة
- يجب إجراء التغييرات بعناية لتجنب إدخال مشكلات جديدة
سير العمل الموصى به:
الخطوة 1: تحديد المشكلة
ملاحظات المستخدم: بعد النقر على زر "إرسال الطلب"، تتجمد الصفحة
خطأ وحدة التحكم: TypeError: Cannot read property 'id' of undefined
ساعدني من فضلك:
1. تحليل الأسباب المحتملة
2. العثور على الكود ذي الصلةالخطوة 2: تحليل السبب الجذري
تحقق في أي الحالات يحدث هذا الخطأ
افحص تدفق البياناتالخطوة 3: تطبيق الإصلاح
أصلح هذه المشكلة، و:
1. أضف كودًا دفاعيًا لتجنب مشكلات مشابهة
2. أضف رسائل خطأ لتحسين تجربة المستخدمالنقاط الرئيسية:
- اختبر بدقة بعد الإصلاح للتأكد من أنه لا يؤثر على وظائف أخرى
- أضف كودًا دفاعيًا لتحسين متانة النظام
- سجّل المشكلة والحل للرجوع إليها مستقبلًا
3. سير العمل لمهام التطوير الشائعة
في التطوير اليومي، نواجه أنواعًا عديدة من المهام المختلفة. فيما يلي عدة من أكثر سير العمل بمساعدة الذكاء الاصطناعي شيوعًا.
3.1 تطوير ميزة جديدة
السيناريو: يعطيك مدير المنتج متطلبًا جديدًا، وتحتاج إلى تنفيذ ميزة جديدة.
سير العمل الكامل:
الخطوة 1: فهم المتطلب (تقوم به أنت)
قبل البدء في البرمجة، أوضح أولاً:
- ما الميزة التي يجب تنفيذها؟
- ما هي المدخلات والمخرجات؟
- ما هي الشروط الحدية وحالات الاستثناء؟
- ما هي متطلبات الأداء والأمان؟
الخطوة 2: فهم الكود القائم (اطلب المساعدة من الذكاء الاصطناعي)
أحتاج إلى تنفيذ ميزة تعليقات المستخدمين. ساعدني في:
1. التحقق مما إذا كان هناك شيء مشابه في المشروع
2. معرفة كيف يتم تخزين بيانات المستخدمين وبيانات المقالات
3. فهم اتفاقيات عمليات قاعدة البيانات في هذا المشروعالخطوة 3: وضع خطة تنفيذ (مع الذكاء الاصطناعي)
بناءً على التحليل الذي قمنا به للتو، يتطلب تنفيذ ميزة التعليقات:
1. إنشاء نموذج بيانات التعليقات
2. تنفيذ واجهات CRUD للتعليقات
3. إضافة وظيفة عرض التعليقات ونشرها إلى الواجهة الأمامية
ساعدني في تأكيد ما إذا كانت هذه الخطة معقولة وما إذا كان هناك شيء مفقودالخطوة 4: تنفيذ الميزة (الذكاء الاصطناعي ينشئ، أنت تراجع)
وفقًا للخطة، نفذ أولاً نموذج بيانات التعليقات.
المتطلبات:
- تضمين محتوى التعليق والمؤلف ومعرف المقالة ووقت الإنشاء
- دعم الردود المتداخلة على التعليقات
- إضافة الفهارس الضروريةالآن نفذ نقاط نهاية API للتعليقات.
المتطلبات:
- نشر تعليق
- حذف تعليق (لا يمكن حذف تعليقات الآخرين إلا)
- الحصول على جميع التعليقات لمقال ما
- دعم التقسيم إلى صفحاتأخيرًا نفذ مكون التعليقات في الواجهة الأمامية.
المتطلبات:
- عرض قائمة التعليقات
- نموذج نشر التعليقات
- دعم الرد على التعليقاتالخطوة 5: الاختبار والتحقق (تقوم به أنت)
- اختبر التدفق الرئيسي يدويًا
- اختبر الحالات الحدية مثل المحتوى الفارغ والمحتوى الطويل جدًا
- اختبر التحكم في الصلاحيات مثل عدم القدرة على حذف تعليق شخص آخر
- اطلب من الذكاء الاصطناعي المساعدة في كتابة اختبارات آلية
مثال على محادثة حقيقية:
أنت: أريد إضافة ميزة تعليقات المستخدمين بحيث يمكن للمستخدمين نشر التعليقات على المقالات
الذكاء الاصطناعي: حسنًا، دعني أفهم هيكل المشروع أولاً.
[يحلل الذكاء الاصطناعي كود المشروع]
أرى أن المشروع يحتوي بالفعل على نظام مستخدمين (models/user.js)
ونظام مقالات (models/article.js).
يتطلب تنفيذ ميزة التعليقات:
1. إنشاء نموذج بيانات التعليقات (models/comment.js)
2. إضافة واجهات API المتعلقة بالتعليقات (routes/comment.js)
3. إضافة وظيفة عرض التعليقات ونشرها إلى صفحة تفاصيل المقالة
هل يجب أن أبدأ في التنفيذ؟
أنت: نعم، لنبدأ. أنشئ نموذج البيانات أولاً
الذكاء الاصطناعي: [ينشئ models/comment.js]
لقد أنشأت نموذج بيانات التعليقات بهذه الحقول:
- id: معرف التعليق
- content: محتوى التعليق
- userId: معرف المؤلف
- articleId: معرف المقالة
- parentId: معرف التعليق الأصلي (للردود المتداخلة)
- createdAt: وقت الإنشاء
هل يجب أن أنفذ API بعد ذلك؟
أنت: نعم، نفذ API3.2 إصلاح الأخطاء
السيناريو: يبلغ مستخدم عن مشكلة، وتحتاج إلى تحديدها وإصلاحها بسرعة.
سير العمل الكامل:
الخطوة 1: جمع المعلومات (تقوم به أنت)
سجّل المعلومات التالية:
- ما هي رسالة الخطأ؟
- كيف يمكن إعادة إنتاج هذه المشكلة؟
- متى بدأت تحدث؟
- ما حجم نطاق التأثير؟
الخطوة 2: تحديد المشكلة (اطلب المساعدة من الذكاء الاصطناعي)
ملاحظات المستخدم: بعد النقر على زر "إرسال الطلب"، تتجمد الصفحة
خطأ وحدة تحكم المتصفح: TypeError: Cannot read property 'id' of undefined
يحدث الخطأ في السطر 45 من checkout.js
ساعدني من فضلك:
1. تحليل الأسباب المحتملة
2. العثور على الكود ذي الصلة
3. التحقق من تدفق البياناتالخطوة 3: تحليل السبب الجذري (مع الذكاء الاصطناعي)
تحقق من أين يأتي كائن المستخدم هذا
افحص في أي الظروف قد يكون المستخدم غير معرّفالخطوة 4: تنفيذ الإصلاح (الذكاء الاصطناعي ينشئ، أنت تراجع)
أصلح هذه المشكلة بالمتطلبات التالية:
1. أضف كودًا دفاعيًا للتحقق من وجود المستخدم
2. إذا لم يكن المستخدم موجودًا، أعد التوجيه إلى صفحة تسجيل الدخول
3. أضف رسالة خطأ وديةالخطوة 5: التحقق من الإصلاح (تقوم به أنت)
- أعد إنتاج المشكلة باستخدام الخطوات الأصلية وتأكد من حل المشكلة
- اختبر الوظائف ذات الصلة للتأكد من عدم إدخال مشكلات جديدة
- فكر فيما إذا كانت مشكلات مشابهة موجودة في أماكن أخرى
مثال على محادثة حقيقية:
أنت: أبلغ مستخدم أنه بعد تسجيل الدخول، يؤدي تحديث الصفحة إلى تسجيل الخروج
الذكاء الاصطناعي: هذه عادة مشكلة في تخزين الرمز المميز أو التحقق منه. دعني أتحقق:
1. أين يتم تخزين الرمز المميز، localStorage أم ملفات تعريف الارتباط؟
2. هل يتم إعادة تحميل الرمز المميز عند تحديث الصفحة؟
أخبرني أي ملف يحتوي على الكود المتعلق بالرمز المميز
أنت: utils/auth.js
الذكاء الاصطناعي: [يحلل utils/auth.js]
وجدت المشكلة: الرمز المميز مخزن في sessionStorage،
ويتم مسح sessionStorage عند تحديث الصفحة.
الحل: استخدم localStorage بدلاً من ذلك
هل تريد أن أقوم بتغييره؟
أنت: نعم، غيّره
الذكاء الاصطناعي: [يعدل الكود]
التغيير مكتمل. الرمز المميز مخزن الآن في localStorage،
لذلك لن يُفقد بعد تحديث الصفحة.
أنصحك باختبار:
1. سجّل الدخول وحدّث الصفحة لتأكيد بقاء المستخدم مسجل الدخول
2. أغلق المتصفح وأعد فتحه لتأكيد بقاء المستخدم مسجل الدخول3.3 إعادة هيكلة الكود
السيناريو: أصبح الكود صعب الصيانة، ويحتاج إلى إعادة هيكلة لتحسين جودته.
سير العمل الكامل:
الخطوة 1: تحديد هدف إعادة الهيكلة (تقوم به أنت)
أوضح ما يلي:
- ما المشكلة التي تحاول حلها؟ (كود مكرر؟ هيكل فوضوي؟ مشاكل أداء؟)
- ما حجم نطاق إعادة الهيكلة؟
- ما مستوى المخاطر المقبول؟
الخطوة 2: وضع خطة إعادة الهيكلة (مع الذكاء الاصطناعي)
هذه الدوال الثلاثة (getUserList، getArticleList، getCommentList)
تحتوي على الكثير من الكود المكرر للتقسيم إلى صفحات والفرز والتصفية.
ساعدني من فضلك:
1. تحليل الأجزاء المكررة
2. اقتراح خطة إعادة هيكلة
3. تقييم مخاطر إعادة الهيكلةالخطوة 3: إعداد شبكة أمان (اطلب المساعدة من الذكاء الاصطناعي)
قبل إعادة الهيكلة، اكتب لي حالات اختبار أولاً
بحيث يبقى السلوك كما هو بعد إعادة الهيكلةالخطوة 4: إعادة الهيكلة خطوة بخطوة (الذكاء الاصطناعي ينفذ، أنت تتحقق)
وفقًا للخطة التي ناقشناها للتو، استخرج الدالة المشتركة أولاًالآن حسّن بنية البياناتأخيرًا حدّث مواقع الاستدعاءالخطوة 5: التحقق من النتيجة (تقوم به أنت)
- شغّل جميع الاختبارات وتأكد من نجاحها
- اختبر الوظائف الرئيسية يدويًا
- تحقق مما إذا كانت جودة الكود قد تحسنت
مثال على محادثة حقيقية:
أنت: هذه الدوال الثلاثة تحتوي على الكثير من الكود المكرر. هل يمكنك مساعدتي في إعادة هيكلتها؟
[الصق كود الدوال الثلاث]
الذكاء الاصطناعي: حللتها، والفروق الرئيسية هي:
- getUserList: يحصل على قائمة المستخدمين
- getArticleList: يحصل على قائمة المقالات
- getCommentList: يحصل على قائمة التعليقات
المنطق المشترك بينها هو التقسيم إلى صفحات والفرز والتصفية.
خطة إعادة الهيكلة:
1. استخراج دالة getList عامة
2. تمرير الأجزاء المختلفة كمعاملات
يمكن أن يقلل هذا 80% من الكود المكرر.
هل يجب أن أنفذها؟
أنت: نعم، لكن ساعدني أولاً في كتابة حالات الاختبار
الذكاء الاصطناعي: [ينشئ الاختبارات]
لقد كتبت اختبارات لجميع الدوال الثلاث،
تغطي حالات الاستخدام الرئيسية.
هل يمكنني البدء في إعادة الهيكلة الآن؟
أنت: نعم، ابدأ إعادة الهيكلة
الذكاء الاصطناعي: [يعيد هيكلة الكود]
إعادة الهيكلة مكتملة. أنشأت دالة getList عامة،
والدوال الثلاث الأصلية تستدعي الآن جميعها تلك الدالة المشتركة.
شغّل الاختبارات لتأكيد أن كل شيء يعمل: npm test3.4 مراجعة الكود
السيناريو: قدم أحد أعضاء الفريق كودًا، وتحتاج إلى مراجعته.
سير العمل الكامل:
الخطوة 1: الفهم السريع للتغيير (اطلب المساعدة من الذكاء الاصطناعي)
لخص ما غيّره هذا PR
ما هي الملفات التي تم تعديلها بشكل رئيسيالخطوة 2: التحقق من المشكلات الشائعة (اطلب المساعدة من الذكاء الاصطناعي)
تحقق من هذا التغيير بحثًا عن:
1. مشكلات أمنية (حقن SQL، XSS، إلخ)
2. مشاكل أداء (استعلامات N+1، تسرب الذاكرة، إلخ)
3. أخطاء واضحة
4. ما إذا كان أسلوب البرمجة يتبع اتفاقيات المشروعالخطوة 3: مراجعة متعمقة (تقوم به أنت)
- ما إذا كان منطق العمل صحيحًا
- ما إذا تم أخذ الحالات الحدية في الاعتبار
- ما إذا كان هناك نهج تنفيذ أفضل
- ما إذا كان يجب إضافة اختبارات
الخطوة 4: تقديم ملاحظات (تقوم به أنت)
- أشر إلى الأماكن التي تحتاج إلى تغييرات
- اشرح لماذا يجب تغييرها
- قدم اقتراحات للتحسين
مثال على محادثة حقيقية:
أنت: ساعدني في مراجعة هذا PR
[قدم رابط PR أو الكود]
الذكاء الاصطناعي: راجعت التغيير ووجدت هذه المشكلات:
1. مشكلات أمنية:
- السطر 23: إدخال المستخدم غير مهرب، مما قد يؤدي إلى خطر XSS
- السطر 45: استعلام SQL مبني بتسلسل النصوص، مما يخاطر بالحقن
2. مشاكل أداء:
- السطر 67: يتم الاستعلام عن قاعدة البيانات داخل حلقة، مما يخلق مشكلة N+1
3. جودة الكود:
- دالة handleSubmit طويلة جدًا (200 سطر)؛ فكر في تقسيمها
- معالجة الأخطاء مفقودة
هل تريد أن أشرح أيًا من هذه بالتفصيل؟
أنت: اشرح مشكلة حقن SQL بالتفصيل
الذكاء الاصطناعي: في السطر 45:
```javascript
const query = `SELECT * FROM users WHERE name = '${userName}'`;
```
هذا يضيف إدخال المستخدم مباشرة إلى عبارة SQL.
إذا أدخل مستخدم `' OR '1'='1`، يصبح:
```sql
SELECT * FROM users WHERE name = '' OR '1'='1'
```
سيعيد هذا جميع بيانات المستخدم.
النهج الصحيح هو استخدام استعلام معلم:
```javascript
const query = 'SELECT * FROM users WHERE name = ?';
db.query(query, [userName]);
```
هل تريد أن أصلحه؟4. بناء قاعدة معرفية للمشروع
لمساعدة الذكاء الاصطناعي على فهم مشروعك بشكل أفضل، يُنصح ببناء قاعدة معرفية داخل المشروع. بهذه الطريقة يمكن للذكاء الاصطناعي العمل وفقًا لاتفاقياتك وعاداتك.
4.1 إنشاء ملف وصف المشروع
أنشئ ملف CLAUDE.md أو AGENTS.md في جذر المشروع لتسجيل معلومات المشروع الرئيسية:
# نظرة عامة على المشروع
## ملخص المشروع
هذه منصة تعلم عبر الإنترنت توفر إدارة الدورات وتعلم المستخدمين وتقديم الواجبات وميزات أخرى.
## المكدس التقني
- الواجهة الأمامية: React 18 + TypeScript + Vite
- الواجهة الخلفية: Node.js + Express + PostgreSQL
- النشر: Vercel (الواجهة الأمامية) + Railway (الواجهة الخلفية)
## هيكل المشروعsrc/ ├── components/ # مكونات React ├── pages/ # مكونات الصفحات ├── api/ # استدعاءات API ├── utils/ # دوال مساعدة └── types/ # تعريفات أنواع TypeScript
## اتفاقيات الكود
- استخدم ESLint و Prettier لتنسيق الكود
- ملفات المكونات تستخدم PascalCase (مثل UserProfile.tsx)
- الدوال المساعدة تستخدم camelCase (مثل formatDate.ts)
- الثوابت تستخدم UPPER_SNAKE_CASE (مثل API_BASE_URL)
## سير التطوير
1. أنشئ فرع ميزات من main
2. قدّم PR بعد اكتمال التطوير
3. ادمج بعد نجاح مراجعة الكود
## المهام الشائعة
- بدء خادم التطوير: `npm run dev`
- تشغيل الاختبارات: `npm test`
- البناء للإنتاج: `npm run build`
- تنسيق الكود: `npm run format`
## ملاحظات
- يجب أن تتضمن جميع استدعاءات API معالجة الأخطاء
- يجب التحقق من إدخال المستخدم وتهريبته
- استخدم استعلامات معلمة لعمليات قاعدة البيانات لتجنب حقن SQL
- يجب عدم كتابة المعلومات الحساسة (كلمات المرور، الرموز المميزة) في السجلات
## مخطط قاعدة البيانات
- users: جدول المستخدمين (id، email، password_hash، created_at)
- courses: جدول الدورات (id، title، description، teacher_id)
- enrollments: جدول التسجيل (id، user_id، course_id، enrolled_at)4.2 تسجيل المشكلات الشائعة والحلول
أنشئ docs/troubleshooting.md في المشروع لتسجيل المشكلات الشائعة:
# المشكلات الشائعة
## مشاكل بيئة التطوير
### المشكلة: فشل npm install
**السبب:** إصدار Node غير متوافق
**الحل:** استخدم Node.js 18 أو أحدث
### المشكلة: فشل اتصال قاعدة البيانات
**السبب:** متغيرات البيئة غير مكوّنة
**الحل:** انسخ .env.example إلى .env وأدخل معلومات اتصال قاعدة البيانات
## مشاكل الميزات
### المشكلة: بعد تسجيل دخول المستخدمين، يؤدي تحديث الصفحة إلى تسجيل الخروج
**السبب:** الرمز المميز مخزن في sessionStorage
**الحل:** حوّل إلى localStorage
### المشكلة: فشل رفع الصور
**السبب:** حجم الملف يتجاوز الحد
**الحل:** أضف فحص حجم الملف في الواجهة الأمامية وحدده بـ 5 ميغابايت4.3 الحفاظ على سجلات القرارات التقنية
أنشئ دليل docs/decisions/ لتسجيل القرارات التقنية المهمة:
# ADR-001: اختيار PostgreSQL كقاعدة بيانات
## الحالة
مقبول
## الخلفية
يحتاج المشروع إلى اختيار قاعدة بيانات علائقية. المرشحون هم MySQL و PostgreSQL.
## القرار
اختيار PostgreSQL
## المبرر
1. دعم أفضل لـ JSON، مناسب لتخزين محتوى الدورات
2. بحث نصي كامل أقوى
3. الفريق أكثر دراية بـ PostgreSQL
## النتائج
- نحتاج إلى تعلم الميزات الخاصة بـ PostgreSQL
- يتطلب النشر بيئة PostgreSQL5. تقنيات لتحسين كفاءة التعاون مع الذكاء الاصطناعي
من خلال إتقان بعض التقنيات العملية، يمكنك جعل تعاونك مع الذكاء الاصطناعي أكثر كفاءة.
5.1 كن واضحًا ومحددًا عند وصف المشكلات
وصف سيء:
هذه الميزة بها مشكلة
ساعدني في تحسينهاوصف جيد:
بعد أن ينقر المستخدم على زر "إرسال"، لا يتم إرسال النموذج
وحدة تحكم المتصفح تبلغ: Uncaught TypeError: Cannot read property 'value' of null
يحدث الخطأ في السطر 23 من form.js
هذه القائمة تحميلها بطيء جدًا وتحتوي على 1000 عنصر
ساعدني من فضلك في إضافة تقسيم إلى صفحات بـ 20 عنصرًا في كل صفحةالنقاط الرئيسية:
- قدم معلومات خطأ محددة
- اشرح النتيجة المتوقعة
- أعطِ سياقًا ذا صلة
5.2 افعل شيئًا واحدًا فقط في كل مرة
نهج سيء:
ساعدني في تنفيذ تسجيل الدخول والتسجيل واستعادة كلمة المرور ومركز الملف الشخصي،
تغيير كلمة المرور والتحقق من البريد الإلكترونينهج جيد:
نفذ ميزة تسجيل الدخول أولاً بالمتطلبات التالية:
- تسجيل الدخول بالبريد الإلكتروني وكلمة المرور
- تذكر حالة تسجيل الدخول
- رسائل الخطأ
(بعد الانتهاء) الآن نفذ ميزة التسجيل
(بعد الانتهاء) الآن نفذ ميزة استعادة كلمة المرورالنقاط الرئيسية:
- قسّم المهام الكبيرة إلى مهام صغيرة
- اختبر وتحقق بعد كل مهمة مكتملة
- تأكد من عدم وجود مشكلات قبل الانتقال إلى التالية
5.3 تحقق من النتائج فورًا
نهج سيء:
- دع الذكاء الاصطناعي يعدل 10 ملفات على التوالي
- يكتشف فقط في النهاية أن التغيير الأول كان خاطئًا بالفعل
- يضيع الكثير من الوقت
نهج جيد:
- عدّل ملفًا واحدًا واختبر فورًا
- تأكد من عدم وجود مشكلة، ثم استمر
- صحح المشكلات بمجرد اكتشافها
النقاط الرئيسية:
- تقدم بخطوات صغيرة واحصل على ملاحظات سريعة
- لا تثق بالذكاء الاصطناعي بشكل أعمى
- حافظ على السيطرة على الكود
5.4 استفد جيدًا من السياق
التقنية 1: الإشارة إلى المحادثة السابقة
نفذ وفقًا للخطة التي ناقشناها للتو
ارجع إلى دالة getUserList السابقةالتقنية 2: تقديم كود ذي صلة
هذا هو كود نموذج المستخدم القائم:
[الصق الكود]
نفذ نموذج المقالة بنفس الأسلوبالتقنية 3: شرح خلفية المشروع
هذا مشروع تجارة إلكترونية يستخدم React + Node.js
يحتوي بالفعل على نظام مستخدمين ونظام منتجات
الآن نحتاج إلى إضافة ميزة سلة التسوق5.5 احفظ المحادثات المفيدة
السيناريو: حللت مشكلة معقدة
كيف تفعل ذلك:
- سجّل الحل في توثيق المشروع
- ارجع إليه في المرة التالية التي تظهر فيها مشكلة مشابهة
- شاركه مع أعضاء الفريق الآخرين
مثال:
أنشئ مستندًا ضمن docs/solutions/:
# حل مشكلة استعلام N+1
## وصف المشكلة
عند جلب قائمة المقالات، يستعلم النظام عن معلومات المؤلف مرة واحدة لكل مقالة،
مما يسبب مشكلة أداء.
## الحل
استخدم استعلام JOIN لجلب جميع البيانات دفعة واحدة:
```sql
SELECT articles.*, users.name as author_name
FROM articles
LEFT JOIN users ON articles.author_id = users.idالنتيجة: انخفض وقت الاستعلام من 2000 مللي ثانية إلى 50 مللي ثانية
5.6 تعلم فن طرح الأسئلة
التقنية 1: اسأل "لماذا" أولاً
لماذا يسبب هذا الكود تسرب الذاكرة؟
لماذا يجب أن نستخدم useCallback بدلاً من دالة عادية؟التقنية 2: اطلب خيارات متعددة
ما هي الطرق المختلفة لتنفيذ مصادقة المستخدم؟
ما هي إيجابيات وسلبيات كل منها؟التقنية 3: اطلب شروحات
كيف يعمل هذا الكود؟
هل يمكنك شرح هذه الخوارزمية بالتفصيل؟6. الأسئلة المتكررة
س1: هل يمكنني استخدام الكود الذي أنشأه الذكاء الاصطناعي مباشرة؟
ج: لا، ليس مباشرة. يحتاج إلى مراجعة واختبار.
قد يحتوي الكود الذي ينشئه الذكاء الاصطناعي على المشكلات التالية:
- أخطاء منطقية أو تعامل سيء مع الحالات الحدية
- عدم التوافق مع اتفاقيات البرمجة في المشروع
- مخاطر أمنية
- تحسين أداء غير كافٍ
تحتاج إلى:
- قراءة الكود المُنشأ بعناية
- فهم منطقه
- اختبار سيناريوهات مختلفة
- التأكد من أنه يتبع اتفاقيات المشروع
س2: ماذا لو أساء الذكاء الاصطناعي فهم ما أقصد؟
ج: صححه في الوقت المناسب وصِف المتطلب مرة أخرى.
هذا ليس ما قصدته. ما أعنيه هو...
هذا الفهم غير صحيح. يجب أن يكون...
دعني أصِف المتطلب مرة أخرى...إذا كان لا يزال خاطئًا بعد عدة تصحيحات، يمكنك:
- تقديم المزيد من السياق
- إعطاء أمثلة كود محددة
- تقسيم المهمة إلى أجزاء أصغر
س3: ماذا لو واجهت شيئًا لا يستطيع الذكاء الاصطناعي حله؟
ج: الذكاء الاصطناعي ليس كلي القدرة. بعض المشكلات لا تزال تحتاجك لحلها بنفسك.
مشكلات قد لا يتمكن الذكاء الاصطناعي من حلها:
- تقنيات حديثة جدًا (لدى معرفة الذكاء الاصطناعي تاريخ قطع)
- منطق عمل فريد لفريقك
- مشكلات تتطلب الوصول إلى أنظمة خارجية
- مشكلات تحسين أداء معقدة
في تلك المرحلة، تحتاج إلى:
- قراءة التوثيق الرسمي
- البحث عن حلول ذات صلة
- سؤال زملاء ذوي خبرة
- السؤال في المجتمع
س4: كيف أحكم على ما إذا كانت اقتراحات الذكاء الاصطناعي معقولة؟
ج: استخدم خبرتك ومعرفتك للحكم عليها.
معايير التقييم:
- ما إذا كانت تتبع أفضل الممارسات
- ما إذا كانت تأخذ في الاعتبار الحالات الحدية
- ما إذا كانت هناك مخاطر أمنية محتملة
- ما إذا كانت تناسب المكدس التقني للمشروع
- ما إذا كان الأداء مقبولاً
إذا لم تكن متأكدًا، يمكنك:
- اطلب من الذكاء الاصطناعي شرح سبب اقتراحه لهذا النهج
- اطلب حلولاً بديلة
- استشر أعضاء الفريق
س5: كيف يجب أن يستخدم الفريق الذكاء الاصطناعي في التعاون؟
ج: أنشئ اتفاقيات مشتركة وقاعدة معرفية مشتركة.
توصيات التعاون الجماعي:
- شارك تكوين
CLAUDE.mdالخاص بالمشروع - وحّد اتفاقيات وأسلوب الكود
- سجّل حلول المشكلات الشائعة
- شارك الأوامر المفيدة بانتظام
- تحقق من الكود الذي أنشأه الذكاء الاصطناعي أثناء مراجعة الكود
س6: كيف أتجنب الاعتماد المفرط على الذكاء الاصطناعي؟
ج: استمر في التعلم والتفكير. الذكاء الاصطناعي مساعد، وليس بديلاً.
التوصيات:
- افهم الكود الذي أنشأه الذكاء الاصطناعي بدلاً من نسخه بشكل أعمى
- تعلم بنشاط المفاهيم التي لا تفهمها
- راجع المعرفة الأساسية بانتظام
- حاول حل المشكلات بنفسك أولاً، ثم استخدم الذكاء الاصطناعي للتحقق
- شارك في مراجعة الكود لتتعلم من خبرات الآخرين
7. الملخص
من خلال هذا الفصل، لقد أتقنت الآن:
- حدود قدرات الذكاء الاصطناعي: فهم ما يجيد الذكاء الاصطناعي فعله وما لا يجيده، وبناء نموذج التعاون الصحيح
- استراتيجيات أنواع المشاريع: استراتيجيات تطوير مختلفة للمشاريع الجديدة تمامًا والمشاريع الناضجة والنماذج الأولية السريعة ومشاريع الصيانة
- سير عمل المهام الشائعة: سير عمل كامل لتطوير الميزات الجديدة وإصلاح الأخطاء وإعادة هيكلة الكود ومراجعة الكود
- قاعدة المعرفة للمشروع: تعلم كيفية بناء توثيق المشروع حتى يتمكن الذكاء الاصطناعي من فهم مشروعك بشكل أفضل
- تقنيات التعاون: طرق عملية لتحسين كفاءة التعاون مع الذكاء الاصطناعي
النقاط الرئيسية:
- تقسيم واضح للأدوار: أنت تتخذ القرارات وتضمن الجودة، والذكاء الاصطناعي يتولى التنفيذ والمساعدة
- تواصل واضح: كن محددًا وافعل شيئًا واحدًا في كل مرة
- تحقق فورًا: لا تثق بشكل أعمى، اختبر وتحقق
- استمر في التعلم: افهم حدود قدرات الذكاء الاصطناعي وحسّن نموذج التعاون باستمرار
تذكر: الذكاء الاصطناعي أداة، وليس بديلاً. يمكنه أن يجعلك أكثر كفاءة، لكن جودة الكود النهائي لا تزال تعتمد على حكمك. ابدأ بمهام بسيطة وبناء الثقة تدريجيًا. ستجد أن الذكاء الاصطناعي يمكن أن يوفر لك الكثير من الوقت ويتيح لك التركيز على عمل أكثر قيمة.
💡 الخطوة التالية
في الفصل التالي، سنتعلم كيفية استخدام الذكاء الاصطناعي لمراجعة الكود وضمان الجودة لضمان قابلية صيانة الكود وأمانه.