שימוש בהתאמה אישית של קוד ב-Gemini Code Assist

במאמר הזה מוסבר איך להשתמש בהתאמה אישית של קוד ב-Gemini Code Assist, ומוצגות כמה שיטות מומלצות. התכונה הזו מאפשרת לקבל המלצות לקוד שמבוססות על הספריות הפנימיות, ממשקי ה-API הפרטיים וסגנון התכנות של הארגון.

לפני שמתחילים

  1. מגדירים את Gemini Code Assist עם מינוי Enterprise.
  2. הגדרת התאמה אישית של קוד ב-Gemini Code Assist.

איך משתמשים בהתאמה אישית של קוד

בטבלה הבאה מפורטות דרכים להתאמה אישית של קוד באמצעות Gemini Code Assist:

טופס איך מפעילים הערות ומקורות מידע

צ'אט בשפה טבעית

מזינים הנחיה בשפה טבעית בצ'אט של Gemini Code Assist בסביבת הפיתוח המשולבת (IDE).

כמה נקודות שכדאי לזכור:

  • היסטוריית הצ'אט לא זמינה. אל תשתמשו בשאילתות מורכבות.
  • אתם יכולים לבקש פרטים נוספים על מקורות, כולל קישורים למקורות הספציפיים.
  • אם מסמנים או בוחרים קוד כששולחים הודעה בצ'אט, ‫Gemini Code Assist משתמש בקוד הזה כדי לשפר את ההתאמה האישית של הקוד ואת איכות הצ'אט.

מידע נוסף זמין במאמר שיחה עם Gemini Code Assist.

הפק קוד בסרגל הבחירה המהירה ב-IDE, עם קוד נבחר או בלי, מקישים על Command+Enter (ב-macOS) או על Control+Enter. מידע נוסף זמין במאמר יצירת קוד באמצעות הנחיות.
שינוי קוד בסרגל הבחירה המהירה בסביבת הפיתוח המשולבת (IDE), עם קוד נבחר או בלי, מזינים /fix. מידע נוסף זמין במאמר יצירת קוד באמצעות הנחיות.
השלמה אוטומטית התאמה אישית של הקוד מופעלת באופן אוטומטי ומספקת הצעות על סמך מה שאתם כותבים.

כמה נקודות שכדאי לזכור:

  • כדי להציע הצעה, השלמת הקוד צריכה להגיע לרמת סמך מסוימת. חשוב לוודא שיש כמות משמעותית של קוד זמין כדי שהמערכת תוכל לאחזר קטעי קוד רלוונטיים.
  • השלמת הקוד בודקת אם יש לכם ספריות נדרשות כדי להשתמש ברכיבים מסוימים של הפונקציה.

מידע נוסף זמין במאמר קבלת השלמות קוד.

הקשר של מאגר מרוחק
  1. מתחילים את ההנחיה עם הסמל @. תוצג רשימה של מאגרי מידע מרוחקים זמינים שעברו אינדוקס.
  2. בוחרים מהרשימה את המאגר שרוצים להשתמש בו להוספת הקשר. אפשר גם להתחיל להקליד את שם המאגר כדי לסנן את הרשימה.
  3. אחרי שבוחרים את המאגר, כותבים את שאר ההנחיה.

כמה נקודות שכדאי לזכור:

  • האפשרות הזו שימושית כשעובדים על משימה שקשורה בעיקר לקבוצה ספציפית של מיקרו-שירותים, ספריות או מודולים.

מידע נוסף מופיע במאמר בנושא קבלת הצעות רלוונטיות יותר באמצעות הקשר של מאגר מרוחק.

תרחישים לדוגמה והנחיות לדוגמה

בטבלה הבאה מופיעות הנחיות ודוגמאות לשימוש בהתאמה אישית של קוד בתרחישי שימוש ספציפיים:

תרחיש לדוגמה דברים שכדאי לנסות
כתיבת קוד חדש

כדי ליצור קוד בסביבת הפיתוח המשולבת או בצ'אט של Gemini Code Assist, אפשר לנסות את הפעולות הבאות:

  • תייצר קוד שישתמש במונחים שכבר מוזכרים בבסיס הקוד שלך.
  • מדביקים את הקוד, למשל חתימה פונקציונלית או קוד עם הערות TODO, ואז מבקשים מ-Gemini Code Assist למלא או להחליף את ההערות TODO בקוד. הוספת תגובות עם הסבר מתוך ההקשר.

כדאי לנסות ליצור קוד באמצעות ההנחיות הבאות בצ'אט של Gemini Code Assist:

  • "תכתוב פונקציה ראשית שבה נוצר חיבור ל-DATABASE. כולל בדיקות תקינות."
  • ‫"Write a FUNCTION_OR_CLASS in the following structure: EXPLAIN_STRUCTURE."

אחרי שיוצרים קוד, אפשר לנסות להשתמש בהנחיה נוספת כדי לשפר אותו:

  • "אפשר לנסות את הפקודה /fix כדי לשנות את הקוד שנוצר – למשל, לתקן שגיאות תחביר".
  • ‫"Add missing imports" (הוספת ייבוא חסר).
  • "כדאי לנסות את /fix על קוד שנוצר בצ'אט".
ניקוי, פישוט ושינוי מבנה של קוד

כדאי לנסות את ההנחיות הבאות בצ'אט של Gemini Code Assist:

  • "תמזג את IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS בקובץ הזה?"
  • "איך אפשר לפשט את הפונקציה FUNCTION_NAME?"
  • "Can you merge FUNCTION_NAME_1 and FUNCTION_NAME_2 into one function?"
  • "Could you inline some variables in FUNCTION_NAME?"
  • "Could you simplify variable naming in the function FUNCTION_NAME?"
ציון קריאוּת

כדאי לנסות את ההנחיות הבאות בצ'אט של Gemini Code Assist:

  • ‫"Write the function FUNCTION_NAME in fewer lines of code, if possible."
  • ‫"Add comments to the function FUNCTION_NAME."
  • ‫"Remove unnecessary whitespaces in the function FUNCTION_NAME."
  • ‫"Format the function FUNCTION_NAME in a similar way as the rest of the code."
בדיקת קוד

כדאי לנסות את ההנחיות הבאות בצ'אט של Gemini Code Assist:

  • ‫"Split the code in parts and explain each part using our codebase."
  • "האם יש משתנים או מילות מפתח שאפשר לקצר ולהפוך למובנים יותר?"
  • "תראה לי קוד שימושי מההקשר REPOSITORY_NAME_PACKAGE_MODULE של הקוד הזה"
  • "What do you think about the function FUNCTION_NAME?"
ניפוי באגים

כדאי לנסות את ההנחיות הבאות בצ'אט של Gemini Code Assist:

  • "מופיעה לי שגיאה כשאני מנסה לבצע פעולה X או להוסיף Y. למה?"
  • "Can you spot an error in the function FUNCTION_NAME?"
  • "איך היית מתקן את הפונקציה FUNCTION_NAME בהינתן הודעת השגיאה הזאת?"
למידה והכשרת עובדים חדשים

כדאי לנסות את ההנחיות הבאות בצ'אט של Gemini Code Assist:

  • ‫"Split this code in parts and explain each of them using our codebase."
  • ‫"Show how to call function FUNCTION_NAME?"
  • ‫"Show how to run the main function in the ENVIRONMENT_NAME environment?"
  • "What is the key technical improvement we can do to make this code more performant?"
  • ‫"Show me the implementation of FUNCTION_OR_CLASS_NAME to achieve better results and add what that specific element is"—for example, "Show me the implementation of function foo where foo is the name of the function."
העברה

כדאי לנסות את ההנחיות הבאות בצ'אט של Gemini Code Assist:

  • ‫"Give me a strategy for how I can migrate FILE_NAME from LANGUAGE_1 to LANGUAGE_2" (תכנון אסטרטגיה להעברת FILE_NAME מ-LANGUAGE_1 ל-LANGUAGE_2) – לדוגמה, מ-Go ל-Python.
  • "בהינתן הפונקציה FUNCTION_NAME במאגר REPOSITORY_NAME, תמצא לי פונקציה מקבילה בשפה LANGUAGE_NAME שאוכל להשתמש בה".

אפשר לנסות את תהליך העבודה הבא של שינוי קוד או יצירת קוד באמצעות הנחיות בצ'אט:

  1. ‫"Take FILENAME_COMPONENT code already written in LANGUAGE_1 and refactor and migrate it to LANGUAGE_2"—for example, from Go to Python.
  2. אחרי שמבצעים העברה של חלק מהקוד, מנסים את הפעולות הבאות:
    • בוחרים חלקים קטנים יותר ומשתמשים ב-/fix כדי להגיע למצב הרצוי.
    • הנחיות לדוגמה:
      • "Is there something which can be improved?"
      • ‫"Give me possible pain points" ‏(תן לי נקודות כאב אפשריות).
      • "איך היית בודק את הקוד הזה אם המיגרציה הזו נכונה?"
יצירת משאבי עזרה

כדאי לנסות את ההנחיות הבאות בצ'אט של Gemini Code Assist:

  • "Summarize the code in package or folder X and provide documentation for the top five important methods."
  • ‫"Generate documentation for FUNCTION_OR_CLASS_NAME."
  • "תקצר את המסמכים תוך שמירה על המידע העיקרי".
יצירת בדיקות יחידה

כדאי לנסות את ההנחיות הבאות בצ'אט של Gemini Code Assist:

  • ‫"Generate unit tests for FILENAME."
  • ‫"Add the most relevant test cases for the FUNCTION_NAME function."
  • "תסיר תרחישי בדיקה שלדעתך לא מניבים ערך רב".

שיטות מומלצות

  • משתמשים בשמות רלוונטיים של משתנים ופונקציות או בקטעי קוד. כך אפשר להתאים אישית את הקוד לפי הדוגמאות הרלוונטיות ביותר.
  • משתמשים במאגרי אינדקס שרוצים להרחיב, ונמנעים מהוספה של פונקציונליות שיצאה משימוש. התאמה אישית של הקוד עוזרת להרחיב את סגנון הקוד, התבניות, הסמנטיקה של הקוד, הידע וההטמעות בכל בסיס הקוד. דוגמאות רעות למאגרי מידע שניתן להרחיב הם פונקציות שיצאו משימוש, קוד שנוצר והטמעות מדור קודם.
  • בתרחישי שימוש שבהם צריך לאחזר קוד, כדאי להשתמש בפונקציונליות של יצירת קוד במקום בהשלמת קוד. הנחיה באמצעות שפה כמו "Using the definition of FUNCTION_NAME, generate the exact same function," (בהתבסס על ההגדרה של FUNCTION_NAME, צור את אותה פונקציה בדיוק) או "Generate the exact implementation of FUNCTION_NAME" (צור את היישום המדויק של FUNCTION_NAME).
  • כדי לשפר את ההבנה ההקשרית של Gemini, צריך לוודא שהקובץ כולל את הקוד שרוצים לאחזר.
  • אפשר לבצע רק פעולה אחת לכל הנחיה. לדוגמה, אם רוצים לאחזר קוד וליישם אותו בפונקציה חדשה, צריך לבצע את השלבים הבאים בשתי הנחיות.
  • בתרחישי שימוש שבהם אתם רוצים לקבל יותר מקוד (למשל הסבר על קוד, תוכנית העברה או הסבר על שגיאה), אתם יכולים להשתמש בהתאמה אישית של קוד לצ'אט, שבה אתם מנהלים שיחה עם Gemini עם בסיס הקוד שלכם בהקשר.
  • חשוב לזכור שדור המודלים של AI הוא לא דטרמיניסטי. אם אתם לא מרוצים מהתשובה, יכול להיות שתקבלו תוצאה טובה יותר אם תריצו שוב את אותה ההנחיה.
  • הערה: יצירת בדיקות יחידה בדרך כלל עובדת טוב יותר אם פותחים את הקובץ באופן מקומי, ואז מבקשים בצ'אט ליצור בדיקות יחידה לקובץ הזה או לפונקציה ספציפית.

קבלת הצעות רלוונטיות יותר עם הקשר של מאגר מרוחק

כדי לקבל הצעות קוד רלוונטיות יותר שמתאימות להקשר, אפשר להנחות את Gemini Code Assist להתמקד במאגרי קוד מרוחקים ספציפיים. כשמשתמשים בסמל @ בצ'אט, אפשר לבחור מאגר אחד או יותר שישמשו כמקור העיקרי של ההקשר להנחיות. האפשרות הזו שימושית כשעובדים על משימה שקשורה בעיקר לקבוצה ספציפית של מיקרו-שירותים, ספריות או מודולים.

כדי להשתמש במאגר מרוחק כהקשר, פועלים לפי השלבים הבאים בצ'אט של סביבת הפיתוח המשולבת:

  1. מתחילים את ההנחיה עם הסמל @. תופיע רשימה של מאגרי מידע מרוחקים זמינים שעברו אינדוקס.
  2. בוחרים מהרשימה את המאגר שרוצים להשתמש בו להוספת הקשר. אפשר גם להתחיל להקליד את שם המאגר כדי לסנן את הרשימה.
  3. אחרי שבוחרים את המאגר, כותבים את שאר ההנחיה.

‫Gemini ייתן עדיפות למאגר שנבחר כשהוא ייצור תשובה.

הנחיות לדוגמה

ריכזנו כאן כמה דוגמאות לשימוש בתכונה הזו:

  • כדי להבין מהו מאגר:
    • ‫"@REPOSITORY_NAME What is the overall structure of this repository?"
    • ‫"@REPOSITORY_NAME אני חבר/ה חדש/ה בצוות. אפשר לקבל סקירה כללית על המטרה של המאגר הזה ועל המודולים העיקריים שלו?"
  • לגבי יצירה ושינוי של קוד:
    • ‫"@REPOSITORY_NAME הטמעת פונקציית אימות שדומה לזו שמאוחסנת במאגר הזה".
    • ‫"@REPOSITORY_NAME שכתב את הקוד הבא בהתאם למוסכמות במאגר שנבחר".
    • @REPOSITORY_A_NAME איך אפשר להשתמש בפונקציות העדכניות ממאגר המידע הזה כדי לשפר את הקוד שלי ב-REPOSITORY_B_NAME?"
  • לצורך בדיקה:
    • ‫"@UNIT_TEST_FILE_NAME צור בדיקות יחידה ל-MODULE על סמך הדוגמאות בקובץ שנבחר".

שימוש במאגרי מידע מרוחקים כמקור ממוקד של הקשר מאפשר לקבל הצעות מדויקות ורלוונטיות יותר מ-Gemini Code Assist, וכך לכתוב קוד מהר יותר וביעילות רבה יותר.