المكاسب:
- القدرة على تعيين وضع الدردشة لتصحيح نوع المهمة مع الإكمال المضمن
- القدرة على كتابة مطالبات إنتاجية قوية تتضمن عقود الإدخال / الإخراج وحالات الحافة وقيود الأسلوب
- القدرة على التحقق من صحة التعليمات البرمجية التي تم إنشاؤها وأي تبعيات جديدة مقترحة قبل الدمج
غالبًا ما تكون نقطة الاتصال الأولى للمطور مع الذكاء الاصطناعي هي ميزة الإكمال التلقائي - وهي ميزة تقترح السطر التالي أثناء الكتابة - أو قول "اكتب هذه الوظيفة" في نافذة الدردشة. كلاهما يستخدم نفس المحرك لكنهما يتطلبان تخصصات مختلفة. في هذه الوحدة، نقوم بتحويل توليد التعليمات البرمجية من "كتابة" عشوائية إلى خطوة هندسية يمكن التنبؤ بمخرجاتها والتحقق منها.
الهدف هو تحويل الذكاء الاصطناعي من أداة تعمل على تسريع آلة الكتابة الخاصة بك إلى متدرب يعمل ضمن القيود التي تحددها. المتدرب ذو التوجيه الجيد يوفر الوقت؛ يتسبب المتدرب غير الموجه في حدوث فوضى يتعين عليك تنظيفها لاحقًا.
وضعان للاستخدام: الإكمال المضمن والدردشة
يتم تشغيل الإكمال المضمّن أثناء الكتابة في المحرر الخاص بك؛ تكتب توقيع وظيفة أو سطر تعليق ويقترح عليك الباقي. إنه أمر رائع بالنسبة للسرعة، ولكن له سياق ضيق: فهو يرى فقط التعليمات البرمجية في المنطقة المباشرة. ولهذا السبب يكون الأمر أفضل عندما تكتب نيتك بوضوح في تعليق. على سبيل المثال، // التحقق من البريد الإلكتروني للمستخدم، قم بإلقاء خطأ التحقق من الصحة إذا كان التعليق غير صالح يؤدي إلى تحسين الاقتراح أدناه بشكل ملحوظ.
وضع الدردشة مخصص للمهام الأكبر حجمًا والمنظمة: "إضافة ترقيم الصفحات إلى هذه الفئة"، "استخراج واجهة تلك الخدمة". هنا لديك ترف إعطاء الدور والسياق والشكل. القاعدة العامة هي: إكمال المهام الصغيرة والمتدفقة، والمحادثة للمهام التي تتطلب تفكيرًا وتنظيمًا.
نصيحة: لا تقبل بشكل أعمى اقتراح الإكمال باستخدام "علامة التبويب". اقرأ السطر المقترح لثانية واحدة؛ غالبًا ما يتسرب اسم متغير غير صحيح أو حالة مقلوبة من هنا.
خطوات ترجمة النية إلى قانون
- تعريف العقد. ما هو سلوك الإدخال والإخراج والخطأ في الوظيفة؟ مثل "الحصول على البريد الإلكتروني، والتطبيع إذا كان صالحًا، ورمي الخطأ إذا كان غير صالح".
- اذكر القيود. لا تستخدم التبعية الخارجية؟ دليل أسلوب معين؟ هل هناك حد للأداء؟
- أعط مثالا. يقوم زوج المدخلات والمخرجات ("ali@x.com → صالح، ali@ → خطأ") بنقل فهم النموذج للقصد من التنبؤ إلى الدقة.
- اطلب قطع صغيرة. وظيفة واحدة ومسؤولية واحدة. ثم انتقل إلى المرحلة التالية.
- قراءة وتشغيل التعليمات البرمجية التي تم إنشاؤها. يعد التجميع + المحاولة اليدوية السريعة أرخص خطوة ضمان.
ثلاث حالات صغيرة
الحالة 1 - الإنتاج المبني على التعليقات يزيد من الدقة. طلب أحد المطورين أولاً وظيفة تحليل التاريخ بنص فارغ وحصل على النتيجة الصحيحة خلال 3 جولات. في المحاولة الثانية، عندما قمت بتحديد الوظيفة بتعليق من 4 أسطر (التنسيقات المقبولة، قاعدة المنطقة الزمنية، حالة الخطأ) وطلبتها، جاء الكود الذي نجح في الجولة الأولى. نفس النموذج، نفس اليوم؛ وكان الاختلاف فقط في وضوح النية.
الحالة 2 - عدم تحديد الإصدار أمر مكلف. واجه أحد الفرق صعوبة في التعامل مع واجهة برمجة التطبيقات القديمة القائمة على رد الاتصال والتي حلت محل fs.promises في التعليمات البرمجية المنتجة لـ Node.js. عندما تمت إضافة السطر "Use Node 20, ESM, async/await" إلى الموجه، اتبع الإنتاج المشروع في المرة الأولى؛ تم إعادة تعيين متوسط 12 دقيقة قضاها في التصحيح.
الحالة 3 - مكسب حقيقي في الكود النموذجي. تتطلب الخدمة المصغرة 6 DTO (كائن نقل البيانات - فئة بيانات بسيطة تحمل البيانات بين الطبقات) وقواعد التحقق الخاصة بها. ما كان يمثل حوالي 90 دقيقة من العمل اليدوي تم تخفيضه إلى 35 دقيقة عندما تم إنتاجه ومراجعته بواسطة الذكاء الاصطناعي؛ وبما أن تكرار التعليمات البرمجية مرتفع والنمط واضح، فقد عمل الذكاء الاصطناعي في مجاله الأكثر كفاءة هنا.
أربعة قوالب قابلة للنسخ
توليد الوظائف على أساس العقد:
الدور: أنت مطور {{لغة}} مجتهد. عقد الوظيفة: - الاسم: {{name}}- الإدخال: {{الأنواع ومعناها}}- الإخراج: {{النوع والمعنى}}- حالة الخطأ: {{ما يتم طرحه/إرجاعه عند}} القيود: {{لا توجد تبعيات خارجية / نمط / أداء}} أمثلة: - {{input_1}} -> {{output_1}}- {{entry_2}} -> {{error_2}}قم بإعطاء التوقيع + الخطة القصيرة أولاً، ثم الرمز. اختبارات الكتابة، وظيفة فقط.
لمطابقة النمط الحالي (التكيف مع قاعدة التعليمات البرمجية):
فيما يلي مثال لوظيفة من مشروعنا؛ تعلم التسمية ومعالجة الأخطاء وأسلوب التعليق هنا. اكتب دالة لـ {{new_task}} بنفس النمط. مثال: {{current_code}}
من الهيكل العظمي إلى الملء (كعب → التنفيذ):
املأ الهيكل الوظيفي أدناه وفقًا لمهام المهام في التعليقات. تغيير التوقيع ونوع الإرجاع. لا تقم بإنشاء وظيفة مساعدة غير موجودة؛ إذا لزم الأمر، اسمحوا لي أن أعرف "هناك حاجة إلى هذا المساعد". {{هيكل عظمي_كود}}
مقارنة التطبيقات البديلة:
قدم تطبيقين مختلفين لـ {{task}}: (أ) إعطاء الأولوية لقابلية القراءة، (ب) إعطاء الأولوية للأداء. اكتب جملة واحدة "متى يكون ذلك أفضل" تحت كل جملة.
موجه ضعيف / موجه قوي
ضعيف: "اكتب لي وظيفة التحقق من البريد الإلكتروني."
Strong: "TypeScript 5، المكتبة القياسية فقط. اكتب isValidEmail(input: string): boolean. قم بقص المسافات، واجعلها غير حساسة لحالة الأحرف، a@b.co صالح، a@، @b.co، السلسلة الفارغة غير صالحة. إذا كنت ستستخدم التعبير العادي، فلا تكن معقدًا بشكل مفرط؛ أضف سطرين من التعليقات."
نسخة قوية؛ إرجاع اللغة والإصدار والتوقيع وحالات الحافة وقيد النمط. وبالتالي، فإن الكود الذي تم إنشاؤه يعمل ويناسب مشروعك.
النهج
متى تستخدم
انتبه
الإكمال المضمن
إدراجات صغيرة في التدفق
لا تقبل الاقتراح دون قراءته
الإنتاج القائم على العقد في الدردشة
وظيفة/فئة جديدة
إعطاء مثال وحالة الحافة
الإنتاج حسب عينة النمط
إضافة إلى التعليمات البرمجية الموجودة
حدد نموذج التعليمات البرمجية الحالي
حشو الهيكل العظمي
تم إصلاح التوقيع، والجسم فارغ
تغيير التوقيع
تكرار التعليمات البرمجية وفخ التبعية
غالبًا ما يوصي الذكاء الاصطناعي بمكتبة جديدة لتسهيل مهمته. في بعض الأحيان يكون هذا دقيقًا، وفي أحيان أخرى يضيف تبعية غير ضرورية لمشروعك أو يقترح حزمة غير موجودة (هلوسة). القاعدة: تقوم بتأكيد كل تبعية جديدة. لا تقم بإضافته إلى المشروع دون التحقق من أن الحزمة موجودة بالفعل، ويتم صيانتها، ولديها الترخيص المناسب. في معظم الأحيان يكون المساعد الموجود بالفعل في المشروع أفضل من الحزمة الجديدة.
تنبيه: قم بمراجعة بنود الاستيراد التي اقترحتها منظمة العفو الدولية. اسم الحزمة غير الموجود (والذي يمكن أن يشبه أيضًا الحزم المزيفة التي تسمى "خطأ مطبعي") يعطل التجميع ويشكل خطرًا أمنيًا.
الأخطاء الشائعة
- وجود التوقيع الذي يحدده النموذج. إذا لم تقم بإصلاح أنواع الإدخال/الإخراج، يأتي توقيع مختلف مع كل إنتاج ويصبح التكامل صعبًا.
- ناهيك عن حالات الحافة. مدخلات فارغة، فارغة، رقم سالب، قيمة كبيرة جدًا - إذا لم تحددها، فسيكتب النموذج "المسار السعيد"، متخطيًا الحواف.
- الجمع بين الاقتراح دون اختباره. الكود الذي يبدو أنه يعمل لا يعني أنه يعمل.
- قبول التبعية غير الضرورية. تؤدي إضافة مكتبة كاملة لخط واحد إلى إنشاء ديون فنية.
- عدم تناسق الأسلوب. اختلاف التسمية ومعالجة الأخطاء عن بقية المشروع يجعل قاعدة التعليمات البرمجية غير مكتملة.
باختصار
يكون إنشاء التعليمات البرمجية فعالاً عندما تترجم النية إلى عقد واضح. استخدم الإكمال المضمن للمهام الصغيرة أثناء البث وللمهام التي تنشئ بنية في المحادثة. يمكنك تحديد أنواع الإدخال/الإخراج، وحالات الحافة، والإصدار، والنمط؛ أعط مثالاً للنموذج؛ التحقق من كل تبعية جديدة؛ وتشغيل وقراءة كل قطعة يتم إنتاجها. يؤتي الذكاء الاصطناعي ثماره بشكل أفضل في التعليمات البرمجية المتكررة - قم بتشغيله هناك، ضمن الحدود التي تحددها.
مهمة التطبيق
اختر وظيفة صغيرة فعلية من مشروعك تحتاج إلى كتابتها. قم أولاً بطباعته على الذكاء الاصطناعي باستخدام قالب "إنشاء الوظائف المستندة إلى العقد"، مع إعطاء أنواع الإدخال/الإخراج، وحالتين حافة، وقيد النمط. قم بتجميع الكود الذي تم إنشاؤه وجربه باستخدام مدخلين مختلفين. ثم اسأل نفس الوظيفة مرة أخرى، هذه المرة "اكتب لي هذا" دون أي سياق، وقارن بين المخرجين سطرًا تلو الآخر: ما هي حالات الحافة التي تم تفويتها، وكم عدد التصحيحات المطلوبة؟
قائمة مرجعية
- [ ] أعرف مكان استخدام وضع الدردشة مع الإكمال المضمن.
- [ ] أحدد عقد الإدخال/الإخراج وحالات الحافة في إنشاء الوظائف.
- [ ] لقد اعتدت على إضافة معلومات اللغة والإصدار إلى الموجه.
- [ ] أقوم بتجميع واختبار كل قطعة منتجة قبل تجميعها.
- [ ] أؤكد كل تبعية جديدة يقترحها الذكاء الاصطناعي من خلال التحقق من وجودها وضرورتها.
- [ ] أتحقق من أن الكود الذي تم إنشاؤه يتوافق مع نمط المشروع.