إعادة بناء التعليمات البرمجية للوظائف الكبيرة باستخدام وضع الوكيل في GitHub Copilot
يشبه استخدام وضع الوكيل في GitHub Copilot وجود مساعد موجود دائما لمساعدتك في تطوير التعليمات البرمجية الخاصة بك وصيانتها.
في وضع الوكيل، يمكنك تعيين المهام إلى GitHub Copilot باستخدام مطالبات اللغة الطبيعية في لوحة الدردشة. يبدأ GitHub Copilot بتحليل قاعدة التعليمات البرمجية الخاصة بك ، باستخدام المهمة المعينة لإنشاء السياق الضروري. يقوم العامل بإنشاء خطة لإنجاز المهمة ويعرض قائمة بالمهام الفرعية المطلوبة. ثم يفتح ويحرر الملفات المقترنة في محرر التعليمات البرمجية. يكمل الوكيل التحليل والتخطيط والتنفيذ بشكل مستقل ويوفر تعليقا قيد التشغيل في لوحة الدردشة حتى تتمكن من مراقبة تقدمه. إذا لزم الأمر ، يطلب الوكيل توضيحا أو معلومات إضافية أو إذنا للمضي قدما في إجراء معين. بمجرد أن يكمل الوكيل المهمة، يمكنك مراجعة التعديلات والموافقة على (أو رفض) التغييرات الفردية. تظل مسيطرا طوال العملية.
أفضل الممارسات
ضع في اعتبارك هذه النصائح لتحقيق أقصى استفادة من وضع الوكيل:
- قسم إعادة الهيكلة إلى خطوات صغيرة.
- راجع كل تغيير بعناية.
- قم بتجميع واختبار بعد كل خطوة.
أوامر إعادة بناء التعليمات البرمجية الشائعة
فيما يلي بعض الأمثلة على المطالبات لمهام إعادة بناء التعليمات البرمجية الشائعة:
- "قم باستخراج رمز التحقق المحدد إلى طريقة خاصة جديدة تسمى
ValidateOrderتأخذ معلمة الطلب وترجع bool. تأكد من نقل كل منطق التحقق من الصحة وأن موقع الاتصال الأصلي يستخدم قيمة الإرجاع بشكل مناسب." - "راجع الكود المحدد. حدد واستخرج جميع منطق حساب الضريبة المتكرر في أسلوب
CalculateTaxثابت خاص جديد يأخذ المعلمات الضرورية (المبلغ ، taxRate ، المنطقة) ويعيد مبلغ الضريبة المحسوب. استبدل جميع العمليات الحسابية المكررة باستدعاءات لهذه الطريقة." - "راجع الكود المحدد. قم بتحويل سلسلة if / else هذه إلى تعبير تبديل حديث ، مما يضمن تغطية جميع الحالات ويظل المنطق متكافئا. استخدم مطابقة الأنماط عند الاقتضاء وحافظ على نفس نوع الإرجاع ".
- "راجع الكود المحدد. استخرج كافة حسابات التسعير والإجمالي في أسلوب
ComputeTotalsخاص جديد يأخذ معلمة الطلب، وينفذ كافة العمليات الحسابية، ويقوم بتحديث الخصائص الإجمالية للأمر. تأكد من عدم بقاء منطق الحساب في الطريقة الأصلية ".
مثال على سير العمل
افترض أن لديك وظيفة ProcessOrder كبيرة تتعامل مع معالجة الطلبات، بما في ذلك التحقق من الصحة وحسابات التسعير والحفظ في قاعدة البيانات وإرسال الإشعارات. يبلغ طول الوظيفة أكثر من 200 سطر وتحتاج إلى تقسيمها.
يمكنك استخدام الخطوات التالية لإعادة بناء التعليمات البرمجية للوظيفة:
استخرج الجزء الأول:
"استخراج التحقق من صحة الإدخال في الجزء العلوي من
ProcessOrderطريقةValidateOrder(order)جديدة لإرجاع bool."استخرج الجزء الثاني:
"انقل حسابات التسعير إلى طريقة
ComputeTotals(order)جديدة يتم تحديثهاorder.Total."التعامل مع المنطق المتبقي:
استخرج منطق الحفظ والإشعارات بالمثل أو اترك الوظيفة الرئيسية إذا كانت الآن قصيرة وواضحة.
تنظيف:
أعد تسمية المتغيرات وقم بإزالة التعليمات البرمجية غير المستخدمة وضمان الاتساق.
تطبيق اقتراحات وضع السؤال
استخدم انهيار وضع السؤال لتوجيه وضع الوكيل:
- راجع الخطة المقترحة من وضع الطرح وأسئلة المتابعة الخاصة بك.
- صياغة خطة إعادة بناء التعليمات البرمجية النهائية لوضع العامل.
- استخدم التحليل من وضع السؤال لإنشاء سلسلة من المطالبات الواضحة والمحددة لوضع العامل. استخدم أسماء الوظائف وقوائم المعلمات المقترحة في مطالباتك عند الاقتضاء.
تلميح
تعامل مع وضع الوكيل كمطور مبتدئ في فريقك. أعط تعليمات واضحة وراجع عملهم وصححها حسب الحاجة.
ما الذي يجب مراقبته أثناء المراجعة
راجع دائما التغييرات التي أجراها الوكيل. ضع في اعتبارك قائمة المراجعة التالية:
- الحفاظ على المنطق: تأكد من عدم تغيير أي سلوك.
- معالجة المعلمة: قد ينسى مساعد الطيار اجتياز المتغير المطلوب.
- معدلات التسمية والوصول: تأكد من أنها تتطابق مع نمط قاعدة الترميز.
- الخطوط الفائتة: إذا تخطى مساعد الطيار خطا ، فقم بتحريكه يدويا أو اسأل مرة أخرى.
إدارة النتائج غير المتوقعة
عندما ينشئ العامل نتيجة ليست كما كنت تتوقع:
- التراجع عن التغيير أو إرجاع الملف.
- جرب خطوة أصغر أو مطالبة أكثر دقة.
- قم بإصلاح المشكلات البسيطة يدويا أو اطلب من Copilot تصحيحها.
الملخص
يؤدي استخدام وضع الوكيل في GitHub Copilot إلى تبسيط عملية إعادة بناء التعليمات البرمجية للوظائف الكبيرة. من خلال تقسيم المهمة إلى خطوات يمكن التحكم فيها واستخدام مطالبات اللغة الطبيعية ، فإنك تحافظ على التحكم مع السماح للوكيل بالتعامل مع الرفع الثقيل. قم دائما بمراجعة التغييرات بعناية لضمان جودة التعليمات البرمجية وسلامة المنطق.