1. قبل البدء
يوضّح هذا الدرس التطبيقي حول الترميز كيفية إعداد Gemini Code Assist لتقديم اقتراحات لتخصيص الرموز البرمجية بما يتناسب مع مستودعاتك الخاصة. يمكن أن يجعل ذلك النتائج من Code Assist أكثر فائدة بشكل كبير، خاصةً للفرق التي لديها اصطلاحات محددة للعمل المشابه الذي يتكرر غالبًا. يُرجى العِلم أنّ السماح لـ Gemini بفهرسة قواعد الرموز البرمجية الخاصة بك لهذه الميزة لا يتيح لـ Gemini التدريب على نطاق واسع على الرموز البرمجية الخاصة بك.
سنتناول أيضًا كيفية استبعاد الملفات الحساسة أو غير ذات الصلة من عملية تخصيص الرمز باستخدام ملف .aiexclude.
المتطلبات الأساسية
- فهم أساسي لـ Gemini Code Assist وإمكانية الوصول إلى مشروع تم تفعيل هذه الميزة فيه
- الإلمام بإحدى لغات الترميز المتوافقة لتخصيص الرموز
- إمكانية إنشاء مراجع في
us-central1أوeurope-west1، لأنّ تخصيص الرمز يتطلّب اتصالات Developer Connect في هذه المواقع الجغرافية - Google Cloud CLI محدّثة ومصدَّقة
ما ستتعلمه
- كيفية الاستفادة من ميزة تخصيص الرموز البرمجية في Gemini Code Assist Enterprise
- إحدى حالات الاستخدام العديدة التي يمكن أن توفّر فيها ميزة تخصيص الرموز وقت فِرقك
ما تحتاج إليه
- مشروع على السحابة الإلكترونية من Google تم تفعيل Gemini Code Assist فيه
- مستودع خاص للفهرسة من أجل طلبات التخصيص
- حان الوقت لفهرسة الرمز البرمجي لطلبات التخصيص. يمكن أن يستغرق هذا الأمر فترةً تصل إلى 24 ساعة
- بيئة تطوير متكاملة (IDE) مثبَّت عليها Gemini Code Assist
2. السياق
لتجربة تخصيص الرموز، يجب توفُّر ما يلي:
- الوصول إلى مشروع على Google Cloud تم تفعيل Gemini فيه
- ومستودع خاص لإبلاغ ردود Gemini.

ستحتوي أفضل مستودعات المرشحين التي يمكن أن يفهرسها Gemini على رمز يُعاد استخدامه غالبًا في جميع أنحاء مؤسستك. يحتوي مستودع النماذج المقدَّم لهذا الدرس التطبيقي حول الترميز على خدمة ويب عادية من Spring Boot، مع مجلد لكائنات نقل البيانات التي تستوفي هذا المعيار، لأنّه سيتم إنشاء فئة مشابهة لوصف كل كيان في قاعدة بيانات أثناء نقله إلى طبقة العرض.
3- (اختياري) إعداد المستودع
إذا كنت تفضّل استخدام مستودع نموذجي بدلاً من مستودع خاص بك، يمكنك اتّباع الخطوات التالية في محرّر الأوامر الذي تختاره أو في Cloud Shell. ابدأ بإنشاء مستودع خاص لمساعدتنا في رؤية عملية تخصيص الرموز البرمجية أثناء التنفيذ:
mkdir customization-starter
cd customization-starter
curl https://start.spring.io/starter.zip -d dependencies=web,lombok \
-d javaVersion=21 \
-d type=maven-project \
-d bootVersion=3.3.4 -o cc-starter.zip
unzip cc-starter.zip
rm cc-starter.zip
pushd src/main/java/com/example/demo
mkdir dtos
touch dtos/LedgerDTO.java
أضِف ما يلي إلى ملف LedgerDTO:
package com.example.demo.dtos;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@Getter
@Setter
@Accessors(chain = true)
public class LedgerEntryDto {
private Long id;
private String accountName;
private double amount;
private String transactionType;
private String description;
private java.util.Date transactionDate;
}
سيكون ذلك كافيًا لإثبات أنّه سيتم إنشاء أدوات الوصول التي يتوقّع المساهمون الآخرون في قاعدة الرموز البرمجية هذه استخدامها بدقة عند تفعيل خيار تخصيص الرموز البرمجية.
أنشئ مستودعًا جديدًا، مع الحرص على إبقائه خاصًا. اتّبِع الخطوات التالية لنقل التطبيق المبدئي إلى مستودعك الجديد:
popd
gh auth login
git init
git add .
git commit -m "code customization starter"
git remote add origin git@github.com:<YOUR_GITHUB_ID>/customization-starter.git
git branch -M main
git push -u origin main
4. استبعاد الملفات
قبل منح Gemini إذن الوصول إلى مستودعاتك الخاصة، من المهم معرفة كيفية استبعاد الملفات غير ذات الصلة أو الحساسة التي لا يريد فريقك فهرستها. يتم استخدام ملف .aiexclude لتحقيق ذلك، وهو يشبه ملف .gitignore مع بعض الاختلافات الرئيسية:
- يحظر ملف
.aiexcludeالفارغ جميع الملفات في الدليل وجميع الأدلة الفرعية.- وهذا يشبه ملفًا يحتوي على
**/*.
- وهذا يشبه ملفًا يحتوي على
- لا تتوافق ملفات
.aiexcludeمع النفي (إضافة البادئة!إلى الأنماط).
مع أخذ ذلك في الاعتبار، حاوِل تحديد أنواع الملفات أو الدلائل التي يريد فريقك استبعادها من الاعتبار، وأدرِج كلّ منها في أسطر منفصلة:
#Block all files with .key extensions
*.key
#Block all files under sensitive/dir
my/sensitive/dir/
#Block all .key files under sensitive/dir
my/sensitive/dir/ /.key
5- ضبط Developer Connect
Developer Connect هي الخدمة التي تسهّل عمليات الربط والربط بمستودعات الرموز البرمجية الخاصة في GitHub أو GitLab. هذه هي الآلية التي تتيح لـ "مساعد Gemini للرموز البرمجية" الربط بشكل آمن بمستودعاتك الخاصة، وذلك لإنشاء الفهرس الذي سيتم استخدامه لتحسين الردود.
يساعدك هذان المفهومان في فهم كيفية توفير ميزة Developer Connect إمكانية الوصول إلى الرمز البرمجي الخاص بك بشكل آمن:
الاتصال
- يمثّل هذا الحقل الجسر بين Google ومنصّة إدارة رمز المصدر التابعة لجهة خارجية.
رابط
- تمثّل هذه السمة الربط بمستودع فردي لرمز المصدر تختاره ضمن منصة مرتبطة لإدارة رمز المصدر.
مع وضع هذه المفاهيم في الاعتبار، ابدأ بالانتقال إلى صفحة Developer Connect لتفعيل واجهة برمجة التطبيقات لمشروعك.

بعد ذلك، اتّبِع الخطوات المناسبة لإنشاء عملية ربط ورابط لحسابك على GitHub أو GitLab. سيتم إنشاء كلا الموردَين أثناء عملية المعالج.

كرِّر هذه الخطوات لإنشاء رابط لكل مستودع تريد أن تأخذه ميزة تخصيص الرموز البرمجية من Gemini في الاعتبار عند تقديم الردود. يمكنك إعادة استخدام الاتصال الحالي إذا كانت مستودعات متعددة تأتي من المنصة نفسها.
6. إنشاء فهرس والربط به
من أجل تحليل المستودعات وتفسيرها بسرعة، يعتمد تخصيص الرموز على فهرس. دوِّن INDEX_NAME الذي تستخدمه، لأنّك ستحتاج إليه في خطوة لاحقة.
لإنشاء فهرس، شغِّل الأمر التالي:
gcloud gemini code-repository-indexes create <INDEX_NAME> \
--project=<YOUR_PROJECT_ID> \
--location=<REGION>
في حال مواجهة أي أخطاء Invalid choice: ...، تأكَّد من أنّ Google Cloud CLI محدّث من خلال تنفيذ الأمر التالي:
gcloud components update
بعد ذلك، اسمح بالوصول إلى الفهرس من خلال إنشاء مجموعة مستودع على النحو التالي:
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories='[{"resource": "projects/PROJECT_ID/locations/REGION/connections/INDEX_CONNECTION/gitRepositoryLinks/REPOSITORY", "branch_pattern": "BRANCH_NAMES"}]'
استبدال القيم التالية:
- REPOSITORY_GROUP: اسم مجموعة المستودع التي ستنشئها
- PROJECT_ID: رقم تعريف مشروعك على Google Cloud
- INDEX_NAME: اسم الفهرس الذي حدّدته في خطوة سابقة لإنشاء فهرس.
- المنطقة: منطقة متوافقة من القائمة الواردة في المستندات، والتي تم ضبطها في Developer Connect في مشروع على السحابة الإلكترونية من Google.
- INDEX_CONNECTION: ربط الفهرس الذي أنشأته في خطوة سابقة لإنشاء فهرس
- المستودع: المستودع الذي تريد فهرسته. يجب تحديد مستودع واحد على الأقل، ويمكنك تحديد مستودعات متعددة حسب الحاجة.
- BRANCH_NAMES: اسم الفروع التي تريد فهرسة محتواها، مثل main أو dev
استنادًا إلى عدد المستودعات التي تريد فهرستها وحجمها، يمكن أن تستغرق عملية فهرسة المحتوى ما يصل إلى 24 ساعة. تتم الفهرسة مرة واحدة كل 24 ساعة، ويتم رصد أي تغييرات تم إجراؤها في المستودع. يمكنك الرجوع إلى هذه الخطوات للاطّلاع على حالة إنشاء الفهرس:

وأخيرًا، امنح المستخدم الرئيسي المطلوب إذن الوصول إلى المجموعة:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='PRINCIPAL' \
--role='roles/cloudaicompanion.repositoryGroupsUser'
7. إنشاء رمز مخصّص
بعد أن أصبح بإمكان Gemini الوصول إلى الرمز البرمجي في مستودعك الخاص، يمكننا توقّع ظهور مقتطفات ذات صلة في طلبات إكمال الرمز البرمجي. في مستودع المثال، يمكننا الانتقال إلى مجلد DTO، وعند إنشاء فئة جديدة لتمثيل عنصر جديد، يمكنك رؤية التعليقات التوضيحية المتوقّعة تظهر أثناء الكتابة:

8. الخاتمة
تهانينا على إكمال هذا الدرس التطبيقي حول الترميز. لقد تعلّمت كيفية استخدام ميزة تخصيص الرمز في Gemini Code Assist. بما أنّ الردود يمكن تخصيصها الآن لتناسب قواعد الرموز الخاصة بفِرقك، سيصبح كل طلب واقتراح لإكمال الرمز أكثر فائدة للمطوّرين في فِرقك.
يمكنك مراجعة المستندات والمواد الأخرى التالية للحصول على مزيد من المعلومات والدعم بشأن أمور مثل إعداد أدوار "إدارة الهوية وإمكانية الوصول":