
مرحبا بكم.
تتسارع التقنيات يومًا بعد يوم، يدفعها إلى ذلك اكتشافات وتجارب تغير عالمنا، وكما كان المحرك البخاري بداية الثورة الصناعية الثالثة، فإن الذكاء الاصطناعي هو المحرك للثورة الصناعية الرابعة التي تقودها التقنية الحديثة.
واليوم، أتطرق في مقالي الجديد إلى إحدى هذه التقنيات التي ليست موجهةً لعموم المستخدمين، بل لمطوري البرمجيات، ألا وهي خدمة 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 لإتمام الربط.

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

ومن خلال 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.

لاحظوا أنني أخذت الأسطر التي أحتاجها من الاقتراح وتركت الباقي، مع أن الاقتراح يحتوي على Event لجلب التغريدات من خلال Twitter بناءً على اسم المستخدم، وهذا ما قصدته عندما تحدثت حول كون Copilot مساعدًا لك، وليس مطورًا ينوب عنك. 😊
إحضار التغريدات من Twitter:
أردت تجربة شيء أكبر من هذا، ولذا فقد كتبت التعليق التالي:
//on form submit, and if twitterUsername is not empty, fetch last 20 tweets, else display error message

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

التحكم بتفعيل زر الإرسال وتعطيله:
كلما كان التعليق واضحًا، كانت النتائج أكثر إدهاشًا!
جربت كتابة التعليق التالي:
//listen to onchange event. if input is not empty, make button enabled, remove disabled class, and add class btn-primary, else reset to disabled

دققوا معي في جملة “else reset to disabled” الموجودة في التعليق. من الواضح أن Copilot قد فهم من خلالها أنه يجب عليه القيام بالتالي:
-
- إعادة تعيين صفة Disabled إلى True على زر الإرسال.
-
- إضافة CSS Class: disabled إليه.
-
- حذف CSS Class: btn-primary منه.
إضافة التواريخ:
يمكن لِCopilot مساعدتك في التعديل على الدوال. في المثال التالي، أردت عرض التغريدة بالتاريخ الهجري بدلاً من الميلادي.

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