رحب معي بCopilot, مساعدك الجديد لتسهيل عمليات التطوير البرمجي

اكتب تعليقًا وCopilot سيتولى الباقي!

مرحبا بكم.

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

واليوم، أتطرق في مقالي الجديد إلى إحدى هذه التقنيات التي ليست موجهةً لعموم المستخدمين، بل لمطوري البرمجيات، ألا وهي خدمة Copilot من GitHub. فما هي خدمة Copilot?

نظرة عامة:

Copilot هي خدمة تم تطويرها من خلال تعاون بين GitHub وشركة Microsoft المالكة لها، وOpenAI الرائدة في تقنيات الذكاء الاصطناعي، والمقدمة للعديد من تقنيات توليد النصوص، والتي كان آخرها OpenAI-GPT3.

حيث قامت Microsoft بتدريب تقنيات GPT3 على مليارات الأسطر من الأكواد البرمجية لتشكل خدمة Copilot, والتي تساعد المطور في كتابة الدوال بناءً على عدة عوامل، كالتعليقات الموجودة في الملف البرمجي وما يحيط به من ملفات، والدوال الأخرى، وعناصر الواجهة، إلخ… وفي جميع الأحوال، تساعد هذه الخدمة المطورين على تقليل الجهد المبذول في كتابة الكود البرمجي، وتقلل من صعوبة دخول المبتدئين إلى عالم البرمجة، ولكنها لا تغني عن المطور بشكل عام.

ولاستخدام الخدمة يحتاج المطور إلى حساب GitHub إضافةً إلى تثبيت الإضافة الخاصة بها على أحد المحررات المدعومة وهي: Visual Studio Code, JetBrains IDE, Visual Studio, أو Neovim.

سيتاح لك تجربة الخدمة لمدة 60 يومًا، ومن ثم سيكون سعر الخدمة هو 10 دولارات للشهر، أو 100 دولار للسنة.

الأمن والحماية:

على الرغم من أن Microsoft سعت جاهدةً لتصفية المحتوى وتحسينه، إلا أن مسؤولية الأمن والحماية تقع على عاتق المطورين. ولذا، يجب على المطور مراجعة الكود البرمجي المقدم من Copilot والتأكد من خلوه من المشاكل الأمنية أو المعلومات الشخصية أو المحتوى غير اللائق.

سرية البيانات:

طبقًا للأسئلة الشائعة لخدمة Copilot, تقوم Microsoft وOpenAI باستخدام الكود البرمجي لتحسين الخدمة وتوليد أكواد مخصصة للمطورين، ولن يتم نشرها أو استخدامها في برامج أخرى، ولا يمكن الوصول إليها إلا من خلال أشخاص محددين. ويمكنك في حال عدم الارتياح إلى ذلك إلغاء جمع هذه المعلومات عند الاشتراك في الخدمة، أو من خلال صفحة الإعدادات الخاصة بCopilot على موقع GitHub.

كما تجمع Microsoft معلومات عما إذا كان المستخدم قد قبل باقتراحات Copilot المعروضة أو رفضها لتحسين الجودة، ولا يمكن إلغاء جمع هذه المعلومات مع الأسف.

لِنُحَلِّق بمساعدة Copilot:

في هذا المقال، سأقوم بعرض أمثلة من خلال استخدام الخدمة مع محرر Visual Studio Code.

قم بالانتقال إلى صفحة Copilot واختيار رابط “Start my Free Trial

بعد إكمال البيانات وضبط الإعدادات الخاصة بالخصوصية، قم بتنزيل الإضافة من خلال متجر إضافات Visual Studio Code

إن لم تقم بربط الإضافة مع Visual Studio Code من قبل، سيظهر لك إشعار يطلب تسجيل الدخول إلى GitHub لإتمام الربط.

إشعار الربط مع GitHub أسفل الشاشة، ويظهر فيه زر Sign in to GitHub

قم بالضغط على Sign In. سيتم فتح المتصفح لإتمام الربط، ومن ثم طلب إعادة فتح Visual Studio Code. قم بالموافقة.

مجموعة من التجارب على JavaScript:

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

كود صفحة HTML تحوي نموذج، يحوي مربع تحرير لاسم المستخدم وزر لجلب التغريدات

ومن خلال JavaScript, سأقوم بإنشاء Event لجلب التغريدات ووضعها في قائمة، أو عرض رسالة خطأ في حال كون مربع اسم المستخدم خاليًا.

وجدت بأن Copilot لا يتعامل بشكل جيد مع لغة HTML, ولكنه يؤدي أداءً مميزًا مع Javascript.

عند الانتهاء، قمت بكتابة التعليق التالي في عنصر Script,:

//define tweets, twitterUsername, form, and submit button

ستظهر قائمة بالاقتراحات من Copilot يمكنك التنقل ضمنها باستخدام Alt+] و Alt+[.

لمستخدمي قارئ الشاشة: ستسمع نغمة تفيد بوجود اقتراحات. يمكنك عندئذ استعمال الاختصار CTRL+k, CTRL+i لإظهار الاقتراحات، ومن ثم استعمال الاختصارات المذكورة أعلاه للتنقل بينها.

يظهر التعليق وأسفل منه مجموعة من الاقتراحات

عند الوصول إلى اقتراح مناسب، اضغط على مفتاح Tab لإدخاله. إن لم تجد اقتراحًا مناسبًا، اضغط على مفتاح Escape وتابع الكتابة بشكل اعتيادي. ستتحسن جودة اقتراحات Copilot كلما تابعت الكتابة. ويمكنك أيضًا عرض كافة الاقتراحات في ملف باستخدام CTRL+Enter.

مستند Copilot الذي يظهر عند ضغط CTRL+Enter, يظهر في الصورة أربعة أسطر محددة، وهي تعريف لمتغيرات Javascript لقائمة التغريدات، ومربع الإدخال، والنموذج، وزر إرسال النموذج

لاحظوا أنني أخذت الأسطر التي أحتاجها من الاقتراح وتركت الباقي، مع أن الاقتراح يحتوي على Event لجلب التغريدات من خلال Twitter بناءً على اسم المستخدم، وهذا ما قصدته عندما تحدثت حول كون Copilot مساعدًا لك، وليس مطورًا ينوب عنك. 😊

إحضار التغريدات من Twitter:

أردت تجربة شيء أكبر من هذا، ولذا فقد كتبت التعليق التالي:

//on form submit, and if twitterUsername is not empty, fetch last 20 tweets, else display error message

تظهر اقتراحات Copilot عند كتابة التعليق

وبضغطة Tab واحدة، تمت كتابة الدالة التي تقوم بعملية جلب التغريدات من Twitter ووضعها في قائمة التغريدات.

تمت كتابة دالة Event Listener للنموذج عند إرساله

التحكم بتفعيل زر الإرسال وتعطيله:

كلما كان التعليق واضحًا، كانت النتائج أكثر إدهاشًا!

جربت كتابة التعليق التالي:

//listen to onchange event. if input is not empty, make button enabled, remove disabled class, and add class btn-primary, else reset to disabled

تظهر اقتراحات Copilot عند كتابة التعليق

دققوا معي في جملة “else reset to disabled” الموجودة في التعليق. من الواضح أن Copilot قد فهم من خلالها أنه يجب عليه القيام بالتالي:

    1. إعادة تعيين صفة Disabled إلى True على زر الإرسال.
    1. إضافة CSS Class: disabled إليه.
    1. حذف CSS Class: btn-primary منه.

إضافة التواريخ:

يمكن لِCopilot مساعدتك في التعديل على الدوال. في المثال التالي، أردت عرض التغريدة بالتاريخ الهجري بدلاً من الميلادي.

يظهر التعليق لتحويل التاريخ إلى الهجري باستخدام toLocalString

كتبت هذا التعليق داخل دالة جلب التغريدات وتحديدًا في الForeach Loop. واقترح علي Copilot تغيير الكود الخاص بالLoop.

خاتمة:

لا شك بأن المستقبل يخبئ لنا الكثير، فتقنيات الذكاء الاصطناعي حققت تقدمًا كبيرًا في مجالات شتى، وهاهي الآن تضع بصمتها لتساعد المطورين في أداء أعمالهم.

أرى أن هذه التقنيات تشجع الكثيرين على دخول هذا المجال الرائع، ولاسيما ذوي الإعاقة الذين يواجهون صعوبات كثيرة؛ نظرًا لقلة مصادر التعلم المهيئة لهم.

ما أزال في مرحلة تجربة هذه الخدمة، ولعلي أعود بتحديث لأاوافيكم بتجربتي بعد مدة من الزمن.

إلى ذلكم الحين، دمتم بحفظ الله ورعايته، والسلام عليكم ورحمة الله وبركاته.