مقدمة في استخدام Copilot

مشاركة فيديو

GitHub Copilot هي أداة لإكمال الكود تعتمد على التعلم الآلي، وتساعدك على كتابة الكود بسرعة أكبر وتحسين كفاءة البرمجة.

Copilot Labs القدرات

القدرات الوصف ملاحظات مثال
Explain إنشاء شرح لجزء من الكود يوجد خيارات متقدمة لتخصيص المطالبة (Prompt) لشرح احتياجاتك بشكل أوضح picture 1
Show example code إنشاء كود نموذجي لجزء من الكود يوجد خيارات متقدمة للتخصيص picture 2
Language Translation إنشاء ترجمة لجزء من الكود هذه الترجمة تستند إلى لغة البرمجة، على سبيل المثال C++ -> Python picture 3
Readable تحسين قابلية قراءة جزء من الكود ليس مجرد تنسيق بسيط، بل هو تحسين حقيقي للقابلية للقراءة picture 4
Add Types استنتاج الأنواع تغيير المتغيرات ذات النوع التلقائي إلى أنواع صريحة picture 5
Fix bug إصلاح الأخطاء البرمجية إصلاح بعض الأخطاء الشائعة picture 6
Debug جعل الكود أسهل في التصحيح إضافة سجلات طباعة، أو متغيرات مؤقتة لاستخدامها في نقاط التوقف picture 7
Clean تنظيف الكود تنظيف الأجزاء غير المستخدمة من الكود، التعليقات/الطباعة/الكود المهمل picture 8
List steps سرد خطوات الكود يعتمد تنفيذ بعض الأكواد بشكل صارم على الترتيب، ويحتاج إلى التعليق بوضوح على ترتيب التنفيذ picture 9
Make robust جعل الكود أكثر قوة مراعاة الحدود/التعدد/إعادة الدخول وغيرها picture 10
Chunk تقسيم الكود إلى كتل يُفضل عادةً أن يكون عدد الأسطر الفعالة للدالة <= 50، والتداخل <= 4، والتفرع (fan-out) <= 7، وتعقيد الدائرة <= 20 picture 11
Document إنشاء توثيق للكود إنشاء كود عن طريق كتابة التعليقات، ويمكن أيضًا إنشاء تعليقات وتوثيق من خلال الكود picture 12
Custom عملية مخصصة أخبر Copilot كيفية التعامل مع الكود الخاص بك picture 13

ما هو Copilot

مقدمة الموقع الرسمي بسيطة ومباشرة: Your AI pair programmer — مبرمجك المقترن بالذكاء الاصطناعي

البرمجة الزوجية: هي طريقة تطوير برمجيات رشيقة (Agile)، حيث يعمل مبرمجان معًا أمام جهاز كمبيوتر واحد: يكتب أحدهما الكود، والآخر يراقب كل سطر. يتم تبادل الأدوار بشكل متكرر لضمان دقة المنطق ومنع المشاكل.

يشارك Copilot في عمل البرمجة بالطرق التالية، محققًا دور المبرمج المقترن:

فهم

Copilot هو نموذج لغوي كبير، ولا يمكنه فهم الكود الخاص بنا، ولا يمكننا أيضًا فهم نموذج Copilot. الفهم هنا هو فهم متبادل بين مبرمج ومجموعة من المبرمجين. الجميع يكتبون الكود بناءً على بعض الإجماعات.

picture 14

يجمع Copilot المعلومات لفهم السياق، وتشمل هذه المعلومات:

  • الكود قيد التعديل حاليًا
  • الملفات المرتبطة
  • الملفات المفتوحة في بيئة التطوير المتكاملة (IDE)
  • عناوين المكتبات
  • مسارات الملفات

لا يعتمد Copilot على مجرد سطر تعليق واحد للفهم، بل يجمع معلومات سياقية كافية لفهم ما سيتم القيام به بعد ذلك.

اقتراحات

اقتراح كامل اقتراح مضمن (inline)
picture 15 picture 16

كما هو معروف، أكثر طريقة شائعة للحصول على الاقتراحات هي من خلال تعليق يصف المتطلبات بدلاً من كتابة الكود مباشرة، مما يوجه GitHub Copilot لتقديم اقتراح كامل. ولكن هذا قد يتسبب في مشكلة تكرار التعليقات، فالتعليقات ليست كلما زادت كان أفضل؛ تساعد التعليقات على الفهم، لكنها ليست جسم الكود. الكود الجيد واضح ومفهوم حتى بدون تعليقات، ويعتمد على التسمية المناسبة، والتصميم المنطقي، والمنطق الواضح. عند استخدام الاقتراحات المضمنة (inline)، طالما أنك تعطي أسماء متغيرات/دوال/فئات مناسبة، سيقدم Copilot دائمًا اقتراحات مناسبة.

إلى جانب المدخلات الخارجية المناسبة، يدعم Copilot أيضًا تقديم اقتراحات بناءً على مقاطع الكود الموجودة. يمكن أن تساعدك Copilot Labs -> Show example code في إنشاء كود نموذجي لدالة محددة، ما عليك سوى تحديد الكود والنقر على Show example code.

Ctrl+Enter، يمكن دائمًا أن يلهم الكثير. قمت بإنشاء ثلاثة ملفات، ملف main.cpp فارغ، وملف calculator.h فارغ، وقمت بتنفيذ “الجمع” و"الطرح" في calculator.cpp، وأعطاني Copilot محتوى الاقتراحات التالي:

  1. إضافة تطبيقات “الضرب” و"القسمة"
  2. استدعاء تطبيقات “الجمع والطرح والضرب والقسمة” في main
  3. طريقة إنشاء واستخدام مكتبة calculator الثابتة
  4. نتيجة تشغيل الدالة main، والنتيجة صحيحة
  5. محتوى الاقتراح لملف رأس calculator.h
  6. أمر تجميع g++
  7. حالات اختبار gtest
  8. محتوى ملف CMakeLists.txt، بما في ذلك الاختبارات
  9. objdump -d main > main.s لعرض كود التجميع، وعرض كود التجميع
  10. ar لعرض محتويات المكتبة الثابتة، وعرض محتويات المكتبة الثابتة

في التكوين الافتراضي، يختلف المحتوى المعروض بشكل كبير في كل مرة تضغط فيها على Ctrl+Enter، ولا يمكن الرجوع إلى المحتوى الذي تم إنشاؤه آخر مرة. إذا كنت بحاجة إلى محتوى مولد أكثر استقرارًا، يمكنك ضبط قيمة temperature [0, 1]. كلما كانت القيمة أصغر، كان المحتوى المولد أكثر استقرارًا؛ وكلما زادت القيمة، كان المحتوى المولد أكثر صعوبة في التنبؤ.
محتوى الاقتراحات المذكور أعلاه يتجاوز بكثير محتوى الاقتراحات العامة للاستخدام اليومي، وربما يرجع ذلك إلى أن المشروع بسيط للغاية بالفعل، بمجرد كتابة ملفات التجميع وملفات الرأس بالكامل، لن تكون هناك这么多 الاقتراحات، لكنها لا تزال غالبًا ما يكون لها تأثير إلهامي جيد.

استخدم اختصارات Copilot الاختصارات

الإجراء الاختصار اسم الأمر
قبول الاقتراح المضمن Tab editor.action.inlineSuggest.commit
تجاهل الاقتراح Esc editor.action.inlineSuggest.hide
إظهار الاقتراح المضمن التالي Alt+] editor.action.inlineSuggest.showNext
إظهار الاقتراح المضمن السابق Alt+[ editor.action.inlineSuggest.showPrevious
تشغيل الاقتراح المضمن Alt+\ editor.action.inlineSuggest.trigger
إظهار المزيد من الاقتراحات في لوحة منفصلة Ctrl+Enter github.copilot.generate

تصحيح الأخطاء

هناك طريقتان عامان لتصحيح الأخطاء: الطباعة ونقاط التوقف.

  • يمكن لـ Copilot المساعدة في إنشاء كود الطباعة تلقائيًا، واختيار تنسيق الطباعة أو السجلات بناءً على السياق.
  • يمكن لـ Copilot المساعدة في تعديل هيكل الكود الموجود، وتوفير مواقع مريحة لنقاط التوقف. بعض الأكواد المتداخلة يصعب وضع نقاط توقف فيها، ويمكن لـ Copilot تعديلها مباشرة.

وظائف Copilot Labs المدمجة مسبقًا:

  • Debug، إنشاء كود تصحيح، مثل الطباعة، ونقاط التوقف، وغيرها من الأكواد الخاصة بالتصحيح.

مراجعة

المراجعة تبادلية، نحن و Copilot بحاجة إلى مراجعة بعضنا البعض كثيرًا، لا تثق في الكود الذي يتم إنشاؤه بسرعة.

وظائف Copilot Labs المدمجة مسبقًا:

  • Fix bug، إصلاح الأخطاء البرمجية التي يجدها مباشرة، يجب حفظ الكود الخاص بك أولًا، ومراجعة تعديلات Copilot بعناية.
  • Make robust، جعل الكود أكثر قوة، سيكتشف Copilot المواقف غير المعالجة وينشئ كودًا محسنًا، يجب أن نستلهم منه و نفكر بشكل أكثر دقة.

إعادة الهيكلة

وظائف Copilot Labs المدمجة مسبقًا:

  • Readable، تحسين القابلية للقراءة، تحسين حقيقي للقابلية للقراءة، وليس مجرد تنسيق بسيط، ولكن يجب مراجعة تعديلات Copilot بحذر شديد.
  • Clean، جعل الكود أكثر إيجازًا، وإزالة الكود الزائد.
  • Chunk، جعل الكود أسهل في الفهم، وتقسيم الكود إلى كتل، وتقسيم دالة كبيرة إلى عدة دوال صغيرة.

التوثيق

وظائف Copilot Labs المدمجة مسبقًا:

  • Document، إنشاء التوثيق، مثل تعليقات الدوال، وغيرها من الوثائق.

استخدام Custom لتوسيع حدود Copilot

قد لا يبدو Custom بارزًا، لكنه يمنح Copilot إمكانيات لا حصر لها. يمكننا فهمه كلغة برمجة جديدة، وهذه اللغة هي الإنجليزية أو الصينية.

يمكنك الدخول عبر Custom

  • إزالة كود التعليقات
    picture 17

  • إضافة قدرات الضرب والقسمة
    picture 18

  • إعادة الكتابة بلغة Go
    picture 19

  • إضافة حساب الدوال المثلثية
    picture 20

  • إضافة حساب التفاضل، لا تعمل الصينية هنا جيدًا، استخدم support calculate differential، في الوضع منخفض الحرارة، لا توجد إجابة موثوقة، في الوضع عالي الحرارة،有几个 إجابات بعيدة عن المنطق.

في العمل اليومي، يمكنك تقديم احتياجاتك إلى Copilot في أي وقت، ومن خلال قدرة Custom، يمكنك جعل Copilot يساعدك في إكمال العديد من العمليات المرغوبة.

بعض الأمثلة:

المطالبات (prompts) الوصف
generate the cmake file إنشاء ملف cmake
generate 10 test cases for tan() إنشاء 10 حالات اختبار
format like google style تنسيق الكود
مراعاة الحدود مراعاة الحدود
تأكيد تحرير الذاكرة تأكيد تحرير الذاكرة

استخدام Custom مليء بالخيال، لكنه أحيانًا ليس موثوقًا تمامًا، يُنصح بحفظ الكود قبل استخدامه، ثم مراجعة التعديلات التي قام بها بعناية.

الحصول على اقتراحات أكثر احترافية

كلما كانت المطالبات المقدمة إلى Copilot أوضح، كانت الاقتراحات التي يقدمها أكثر دقة، والمطالبات الاحترافية可以获得 اقتراحات أكثر احترافية. كثير من الأكواد غير المناسبة لا تؤثر على تجميع الكود أو تشغيل الأعمال، لكنها تؤثر على قابلية القراءة، وقابلية الصيانة، وقابلية التوسع، وإعادة الاستخدام، وهذه الميزات مهمة جدًا أيضًا. إذا أردت الحصول على اقتراحات أكثر احترافية، فمن الأفضل أن نعرف بعض الأسماء الإنجليزية لأفضل الممارسات.

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

اقتراحات النصوص البحتة

en ar
GitHub Copilot uses the OpenAI Codex to suggest code and entire functions in real-time, right from your editor. يستخدم GitHub Copilot OpenAI Codex لاقتراح الكود والدوال الكاملة في الوقت الفعلي، مباشرة من المحرر الخاص بك.
Trained on billions of lines of code, GitHub Copilot turns natural language prompts into coding suggestions across dozens of languages. تم تدريبه على مليارات الأسطر من الكود، ويقوم GitHub Copilot بتحويل المطالبات اللغوية الطبيعية إلى اقتراحات برمجية عبر عشرات اللغات.
Don’t fly solo. Developers all over the world use GitHub Copilot to code faster, focus on business logic over boilerplate, and do what matters most: building great software. لا تعمل بمفردك. يستخدم المطورون في جميع أنحاء العالم GitHub Copilot للبرمجة بشكل أسرع، والتركيز على منطق العمل بدلاً من الكود القوالب (boilerplate)، والقيام بما هو الأهم: بناء برامج رائعة.
Focus on solving bigger problems. Spend less time creating boilerplate and repetitive code patterns, and more time on what matters: building great software. Write a comment describing the logic you want and GitHub Copilot will immediately suggest code to implement the solution. ركز على حل المشكلات الأكبر. قضِ وقتًا أقل في إنشاء أنماط الكود القوالب والمتكررة، ووقتًا أكثر فيما يهم: بناء برامج رائعة. اكتب تعليقًا يصف المنطق الذي تريده وسيقوم GitHub Copilot فورًا باقتراح الكود لتنفيذ الحل.
Get AI-based suggestions, just for you. GitHub Copilot shares recommendations based on the project’s context and style conventions. Quickly cycle through lines of code, complete function suggestions, and decide which to accept, reject, or edit. احصل على اقتراحات تعتمد على الذكاء الاصطناعي، خصيصًا لك. يشارك GitHub Copilot التوصيات بناءً على سياق المشروع واصطلاحات النمط. استعرض بسرعة أسطر الكود، واكمل اقتراحات الدوال، وقرر أيها تقبله، أو ترفضه، أو تحريره.
Code confidently in unfamiliar territory. Whether you’re working in a new language or framework, or just learning to code, GitHub Copilot can help you find your way. Tackle a bug, or learn how to use a new framework without spending most of your time spelunking through the docs or searching the web. برمج بثقة في أراضٍ غير مألوفة. سواء كنت تعمل بلغة أو إطار عمل جديد، أو تتعلم البرمجة للتو، يمكن لـ GitHub Copilot مساعدتك في إيجاد طريقك. تعامل مع خطأ برمجي، أو تعلم كيفية استخدام إطار عمل جديد دون قضاء معظم وقتك في التنقيب في الوثائق أو البحث على الويب.

جميع هذه الترجمات تم إنشاؤها بواسطة Copilot، لا يمكن تحديد ما إذا كانت هذه الاقتراحات مبنية على النموذج أو ناتجة عن سلوك الترجمة. في الواقع، أي محتوى باللغة الإنجليزية تكتبه في عمود en، يمكن لـ Copilot ترجمته (إنشاؤه) إلى المحتوى في العمود ar.

picture 21

إعدادات

إعدادات العميل

الإعداد الوصف ملاحظات
temperature درجة حرارة أخذ العينات 0.0 - 1.0، 0.0 يُنشئ مقاطع الكود الأكثر شيوعًا، 1.0 يُنشئ مقاطع كود أقل شيوعًا وأكثر عشوائية
length الحد الأقصى لطول اقتراح الكود المُنشأ الافتراضي 500
inlineSuggestCount عدد الاقتراحات المضمنة المُنشأة الافتراضي 3
listCount عدد الاقتراحات المُنشأة الافتراضي 10
top_p إظهار اقتراحات الاحتمالات العشوائية N بشكل مفضل الافتراضي إظهار جميع الاقتراحات الممكنة

يوجد إعدادان في إعدادات الحساب الشخصي، أحدهما متعلق بحقوق النشر، والآخر متعلق بالخصوصية.

  • سواء استخدام الكود مفتوح المصدر لتقديم الاقتراحات، يستخدم بشكل أساسي لتجنب مشاكل حقوق النشر في مقاطع الكود التي ينشئها Copilot، وتجنب قيود الترخيص مفتوح المصدر.
  • سواء السماح باستخدام مقاطع الكود الشخصية لتحسين المنتج، لتجنب مخاطر تسريب الخصوصية.

أمن البيانات

جمع معلومات Copilot

  • النسخة التجارية
    • معلومات استخدام الوظائف، قد تحتوي على معلومات شخصية
    • جمع مقاطع الكود، يتم التخلص منها فور تقديم الاقتراحات، لا يتم الاحتفاظ بأي مقاطع كود
    • مشاركة البيانات، GitHub، Microsoft، OpenAI
  • النسخة الشخصية
    • معلومات استخدام الوظائف، قد تحتوي على معلومات شخصية
    • جمع مقاطع الكود، بعد تقديم الاقتراحات، بناءً على إعدادات القياس عن بعد (telemetry) الشخصية، يتم الاحتفاظ بها أو التخلص منها
    • مقاطع الكود تشمل، الكود قيد التعديل، الملفات المرتبطة، الملفات المفتوحة في بيئة التطوير المتكاملة (IDE)، عناوين المكتبات، مسارات الملفات
    • مشاركة البيانات، GitHub، Microsoft، OpenAI
    • حماية بيانات الكود، 1. التشفير. 2. بعض موظفي Github/OpenAI المرتبطين بفريق Copilot يمكنهم رؤيتها. 3. يتطلب الوصول التحكم في الوصول المستند إلى الأدوار والمصادقة متعددة العوامل
    • تجنب استخدام مقاطع الكود (الاحتفاظ بها أو التدريب عليها)، 1. الإعدادات 2. الاتصال بـ فريق Copilot
    • هل سيتم استخدام الكود الخاص؟ لا.
    • هل سيتم إخراج معلومات شخصية (اسم، تاريخ ميلاد، إلخ)؟ نادر، لا يزال قيد التحسين.
  • بيان الخصوصية التفصيلي

الأسئلة الشائعة

  • بيانات تدريب Copilot، تأتي من المستودعات العامة على Github.
  • هل الكود الذي يكتبه Copilot مثالي؟ ليس بالضرورة.
  • هل يمكن كتابة كود لمنصات جديدة؟ القدرة محدودة مؤقتًا.
  • كيف استخدام Copilot بشكل أفضل؟ قسّم الكود إلى دوال صغيرة، صف وظيفة الدالة بلغة طبيعية، بالإضافة إلى المدخلات والمخرجات، واستخدم أسماء متغيرات ودوال ذات معنى محدد.
  • هل سيحتوي الكود الذي ينشئه Copilot على أخطاء برمجية؟ بالطبع لا يمكن تجنبها.
  • هل يمكن استخدام الكود الذي ينشئه Copilot مباشرة؟ ليس بالضرورة، أحيانًا يحتاج إلى تعديل.
  • هل يمكن استخدام الكود الذي ينشئه Copilot في المشاريع التجارية؟ نعم.
    • هل الكود الذي ينشئه Copilot يعد ملكية فكرية لـ Copilot؟ لا.
    • هل Copilot ينسخ الكود من مجموعة التدريب؟ Copilot لا ينسخ الكود، هناك احتمال منخفض جدًا لظهور أكثر من 150 سطر من الكود يتطابق مع مجموعة التدريب، وتحدث الحالتان التاليتان
      • عندما تكون معلومات السياق قليلة جدًا
      • عندما تكون حلًا لمشكلة عامة
    • كيف تجنب التكرار مع الكود العام، قم بتعيين الفلتر
      picture 22
  • كيف استخدام الكود الذي ينشئه Copilot بشكل صحيح؟ 1. اختبار/مراجعة الكود المُنشأ ذاتيًا؛ 2. لا تقم بتجميع أو تشغيل الكود المُنشأ تلقائيًا قبل المراجعة.
  • هل يؤدي Copilot نفس الأداء في كل اللغات الطبيعية؟ أفضل أداء هو باللغة الإنجليزية.
  • هل سيقوم Copilot بإنشاء مسيء؟ تمت إضافة تصفية، لكن لا يمكن استبعاد احتمال ظهورها.