مقدمة في استخدام Copilot
Categories:
- قدرات Copilot Labs
- ما هو Copilot
- الفهم
- الاقتراحات
- تصحيح الأخطاء
- المراجعة
- إعادة الهيكلة
- التوثيق
- استخدام Custom لتوسيع حدود Copilot
- الحصول على اقتراحات أكثر احترافية
- اقتراحات النصوص العادية
- إعدادات
- أمن البيانات
- الأسئلة الشائعة
GitHub Copilot هي أداة لإكمال الكود تعتمد على التعلم الآلي، والتي تساعدك على كتابة الكود بسرعة أكبر وتحسين كفاءة البرمجة.
قدرات Copilot Labs
| القدرة | الوصف | ملاحظات | example |
|---|---|---|---|
Explain | إنشاء شرح لقطعة الكود | توجد خيارات متقدمة لتخصيص الطلبات (prompts) لتوضيح احتياجاتك بشكل أكثر وضوحًا | ![]() |
Show example code | إنشاء كود مثال لقطعة الكود | توجد خيارات متقدمة للتخصيص | ![]() |
Language Translation | إنشاء ترجمة لقطعة الكود | هذه الترجمة تعتمد على لغة البرمجة، مثل C++ -> Python | ![]() |
Readable | تحسين قابلية قراءة الكود | ليست مجرد تنسيق بسيط، بل تحسين حقيقي للقابلية للقراءة | ![]() |
Add Types | استنتاج النوع | تغيير المتغيرات ذات النوع التلقائي إلى أنواع واضحة | ![]() |
Fix bug | إصلاح الأخطاء البرمجية | إصلاح بعض الأخطاء الشائعة | ![]() |
Debug | جعل الكود أسهل في التصحيح | إضافة سجلات الطباعة، أو إضافة متغيرات مؤقتة لاستخدامها في نقاط التوقف | ![]() |
Clean | تنظيف الكود | تنظيف الأجزاء غير المستخدمة من الكود، التعليقات/الطباعة/الكود المهمل، إلخ | ![]() |
List steps | سرد خطوات الكود | بعض الأكواد تعتمد بشكل صارم على الترتيب، وتحتاج إلى توضيح ترتيب التنفيذ في التعليقات | ![]() |
Make robust | جعل الكود أكثر قوة | مراعاة الحدود/التعددية/إعادة الدخول، إلخ | ![]() |
Chunk | تقسيم الكود إلى كتل | نأمل عادةً أن تكون الأسطر الفعالة للدالة <= 50، والتداخل <= 4، والخروج <= 7، وتعقيد الدورة <= 20 | ![]() |
Document | إنشاء توثيق للكود | إنشاء كود عن طريق كتابة التعليقات، ويمكن أيضًا إنشاء تعليقات وتوثيق من خلال الكود | ![]() |
Custom | عملية مخصصة | أخبر copilot كيفية التعامل مع كودك | ![]() |
ما هو Copilot
مقدمة الموقع الرسمي بسيطة وواضحة: Your AI pair programmer — مبرمجك الذكي الزوجي
البرمجة الزوجية: هي منهجية تطوير برمجيات رشيقة (Agile)، يعمل فيها مبرمجان معًا على جهاز الكمبيوتر نفسه: يقوم أحدهما بكتابة الكود، والآخر يراجع كل سطر من الكود. يتم تبادل الأدوار كثيرًا لضمان دقة المنطق ومنع المشكلات.
يشارك Copilot في عمل البرمجة بالطرق التالية، محققًا دوره كمبرمج زوجي.
الفهم
Copilot هو نموذج لغوي كبير، ولا يمكنه فهم الكود الخاص بنا، ولا يمكننا فهم نموذج Copilot أيضًا. الفهم هنا هو تفاهم متبادل بين مبرمج ومجموعة من المبرمجين. يكتب الجميع الكود معًا بناءً على بعض الإجماعات.

يجمع Copilot المعلومات لفهم السياق، وتشمل المعلومات:
- الكود قيد التحرير
- الملفات المرتبطة
- الملفات المفتوحة في IDE
- عناوين المكتبات
- مسارات الملفات
Copilot لا يفهم فقط من خلال تعليق من سطر واحد، بل يجمع معلومات سياقية كافية لفهم ما يجب فعله بعد ذلك.
الاقتراحات
| اقتراحات الفقرات الكاملة | اقتراحات مضمنة (inline) |
|---|---|
![]() | ![]() |
كما هو معروف، أكثر الطرق شيوعًا للحصول على الاقتراحات هي من خلال التعليقات التي تصف المتطلبات بدلاً من كتابة الكود مباشرة، وبالتالي توجيه GitHub Copilot لتقديم اقتراحات كاملة. ولكن هذا قد يسبب مشكلة تكرار التعليقات، فالتعليقات ليست كلما زادت كان أفضل، فالتعليقات تساعد على الفهم، لكنها ليست جوهر الكود. الكود الجيد يكون واضحًا ومفهومًا حتى بدون تعليقات، ويعتمد على التسمية المناسبة، والتصميم المعقول، والمنطق الواضح. عند استخدام اقتراحات inline، طالما قمت بإعطاء أسماء متغيرات/دوال/فئات مناسبة، سيقوم Copilot دائمًا بإعطاء اقتراحات مناسبة.
بالإضافة إلى المدخلات الخارجية المناسبة، يدعم Copilot أيضًا تقديم اقتراحات بناءً على أكواد موجودة. يمكن أن يساعد Copilot Labs -> Show example code في إنشاء كود مثال لدالة محددة، ما عليك سوى تحديد الكود والنقر على Show example code.
Ctrl+Enter، يمكن دائمًا أن يلهمك كثيرًا. أنشأت ثلاثة ملفات، أحدها main.cpp فارغ، والآخر calculator.h فارغ، ونفذت “الجمع” و"الطرح" في calculator.cpp. قدم Copilot محتوى الاقتراحات التالي:
- إضافة تنفيذ “الضرب” و"القسمة".
- استدعاء تنفيذ “الجمع والطرح والضرب والقسمة” في
main. - طريقة إنشاء واستخدام مكتبة
calculatorالثابتة. - نتيجة تشغيل دالة
main، وكانت النتيجة صحيحة. - محتوى الاقتراح لملف الرأس
calculator.h. - أمر الترجمة
g++. - حالات اختبار
gtest. - محتوى
CMakeLists.txt، بما في ذلك الاختبارات. objdump -d main > main.sلعرض كود التجميع (assembly)، وعرض كود التجميع.arلعرض محتويات المكتبة الثابتة، وعرض محتويات المكتبة الثابتة.
في التكوين الافتراضي، يختلف محتوى العرض في كل مرة تضغط فيها على Ctrl+Enter بشكل كبير، ولا يمكن الرجوع إلى المحتوى الذي تم إنشاؤه في المرة السابقة. إذا كنت بحاجة إلى محتوى تم إنشاؤه أكثر استقرارًا، يمكنك تعيين قيمة temperature [0، 1]. كلما كانت القيمة أصغر، كان المحتوى الذي تم إنشاؤه أكثر استقرارًا؛ وكلما زادت القيمة، زاد صعوبة التنبؤ بالمحتوى الذي تم إنشاؤه.
محتوى الاقتراحات أعلاه يتجاوز بكثير محتوى الاقتراحات العامة للاستخدام اليومي، وربما يكون ذلك لأن المشروع بسيط جدًا بالفعل. بمجرد كتابة ملفات الترجمة وملفات الرأس بالكامل، لن تكون هناك这么多 الاقتراحات، لكن لا تزال لها تأثير ملهم جيد جدًا في كثير من الأحيان.
استخدم اختصارات اقتراحات Copilot keyboard shortcuts
| الإجراء | الاختصار | اسم الأمر |
|---|---|---|
| قبول الاقتراح المضمن | 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 |
تصحيح الأخطاء
هناك طريقتان عامتان لتصحيح الأخطاء، وهما الطباعة ونقاط التوقف (breakpoints).
- يمكن لـ 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
移除注释代码(إزالة كود التعليقات)
增加乘除的能力(إضافة قدرات الضرب والقسمة)
改写为go(إعادة كتابته بلغة Go)
添加三角函数计算(إضافة حساب الدوال المثلثية)
添加微分计算(إضافة حساب التفاضل)، اللغة الصينية هنا ليست مفيدة جدًا، استخدمsupport calculate differential، في الوضع المنخفض الحرارة (low temperature)، لا توجد إجابة موثوقة، وفي الوضع العالي الحرارة، هناك عدة إجابات سخيفة.
في العمل اليومي، يمكنك في أي وقت طرح احتياجاتك على Copilot. من خلال قدرة Custom، يمكن لـ Copilot المساعدة في إكمال العديد من العمليات المطلوبة.
بعض الأمثلة:
| prompts | الوصف |
|---|---|
generate the cmake file | إنشاء ملف cmake |
generate 10 test cases for tan() | إنشاء 10 حالات اختبار لـ tan() |
format like google style | تنسيق الكود بنمط Google |
考虑边界情况 (مراعاة ظروف الحدود) | مراعاة ظروف الحدود |
确认释放内存 (تأكيد تحرير الذاكرة) | تأكيد تحرير الذاكرة |
استخدام Custom مليء بالخيال، ولكنه أحيانًا لا يكون موثوقًا جدًا، يُنصح بحفظ الكود قبل الاستخدام، ثم مراجعة التعديلات التي قام بها بعناية.
الحصول على اقتراحات أكثر احترافية
كلما كانت التلميحات (prompts) المقدمة إلى 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.

إعدادات
خيارات إعدادات العميل
| الإعداد | الوصف | ملاحظات |
|---|---|---|
| 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 على أخطاء برمجية (bugs)؟ بالطبع لا يمكن تجنبها.
- هل يمكن استخدام الكود المُنشأ بواسطة Copilot مباشرة؟ ليس بالضرورة، أحيانًا يحتاج إلى تعديل.
- هل يمكن استخدام الكود المُنشأ بواسطة Copilot في المشاريع التجارية؟ نعم.
- هل الكود المُنشأ بواسطة Copilot يعتبر ملكية فكرية لـ Copilot؟ لا.
- هل Copilot ينسخ الكود من مجموعة التدريب؟ Copilot لا ينسخ الكود، هناك احتمال ضئيل جدًا أن يتطابق أكثر من 150 سطر كود مع مجموعة التدريب، وسيحدث ذلك في الحالتين التاليتين
- عندما تكون معلومات السياق قليلة جدًا
- عندما يكون حلاً لمشكلة عامة
- كيفية التكرار مع الكود العام، قم بتعيين filter

- كيفية استخدام الكود المُنشأ بواسطة Copilot بشكل صحيح؟ 1. اختبار/مراجعة الكود المُنشأ بنفسك؛ 2. لا تقم بتجميع أو تشغيل الكود المُنشأ تلقائيًا قبل المراجعة.
- هل يتصرف Copilot بنفس الطريقة في كل لغة طبيعية؟ أفضل أداء هو باللغة الإنجليزية.
- هل سيقوم Copilot بإنشاء محتوى مسيء؟ هناك تصفية (filter)، لكن لا يمكن استبعاد احتمالية ظهوره.














