Codeanpassung in Gemini Code Assist verwenden

In diesem Dokument wird beschrieben, wie Sie die Codeanpassung in Gemini Code Assist verwenden. Außerdem finden Sie einige Best Practices. Mit dieser Funktion erhalten Sie Code-Empfehlungen basierend auf den internen Bibliotheken, privaten APIs und dem Programmierstil Ihrer Organisation.

Hinweis

  1. Richten Sie Gemini Code Assist ein, und zwar mit einem Enterprise-Abo.
  2. Codeanpassung in Gemini Code Assist einrichten

So verwenden Sie die Codeanpassung

In der folgenden Tabelle sind die Verwendungsmöglichkeiten der Codeanpassung in Gemini Code Assist aufgeführt:

Formular Trigger Hinweise und Ressourcen

Chat in natürlicher Sprache

Geben Sie im Gemini Code Assist-Chat in der IDE einen Prompt in natürlicher Sprache ein.

Berücksichtigen Sie Folgendes:

  • Es ist kein Chatprotokoll verfügbar. Verwenden Sie keine mehrstufigen Anfragen.
  • Sie können nach weiteren Details zu Quellen fragen, einschließlich Links zu den jeweiligen Quellen.
  • Wenn Sie beim Senden einer Nachricht im Chat Code markieren oder auswählen, verwendet Gemini Code Assist diesen Code, um die Codeanpassung und die Chatqualität zu verbessern.

Weitere Informationen finden Sie unter Mit Gemini Code Assist chatten.

Code erstellen Drücken Sie in der Schnellauswahlleiste Ihrer IDE mit oder ohne ausgewählten Code Befehlstaste+Eingabetaste (macOS) oder Strg+Eingabetaste. Weitere Informationen zum Generieren von Code mit Prompts.
Code transformieren Geben Sie in der Schnellauswahlleiste Ihrer IDE mit oder ohne ausgewählten Code /fix ein. Weitere Informationen zum Generieren von Code mit Prompts.
Automatische Vervollständigung Die Codeanpassung wird automatisch ausgelöst und macht Vorschläge basierend auf Ihrer Eingabe.

Berücksichtigen Sie Folgendes:

  • Für die Codevervollständigung ist ein gewisses Konfidenzniveau erforderlich, um Vorschläge zu machen. Achten Sie daher darauf, dass eine beträchtliche Menge an Code vorhanden ist, damit relevante Snippets abgerufen werden können.
  • Für die Codevervollständigung wird geprüft, ob Sie die erforderlichen Bibliotheken haben, um bestimmte Elemente der Funktion zu verwenden.

Weitere Informationen zu Codevervollständigungen.

Kontext aus Remote-Repository
  1. Beginnen Sie Ihren Prompt mit dem @-Symbol. Daraufhin wird eine Liste der verfügbaren indexierten Remote-Repositories angezeigt.
  2. Wählen Sie das Repository aus, das Sie für den Kontext verwenden möchten. Sie können auch den Repository-Namen eingeben, um die Liste entsprechend zu filtern.
  3. Nachdem Sie das Repository ausgewählt haben, schreiben Sie den Rest Ihres Prompts.

Der Kontext des Remote-Repositorys ist nützlich, wenn Sie an einer Aufgabe arbeiten, die sich hauptsächlich auf eine bestimmte Gruppe von Mikrodiensten, Bibliotheken oder Modulen bezieht.

Weitere Informationen finden Sie unter Relevantere Vorschläge mit Kontext aus Remote-Repository.

Anwendungsfälle und Prompt-Beispiele

Die folgende Tabelle enthält Anleitungen und Beispiele für die Verwendung der Codeanpassung in bestimmten Anwendungsfällen:

Anwendungsfall Lösungsvorschläge
Neuen Code schreiben

Sie können Code in Ihrer IDE oder im Gemini Code Assist-Chat folgendermaßen generieren:

  • Generieren Sie Code, in dem Begriffe verwendet werden, die bereits in Ihrer Codebasis erwähnt werden.
  • Fügen Sie Ihren Code, z. B. eine Funktionssignatur oder Code mit TODO-Kommentaren, ein und bitten Sie Gemini Code Assist dann, die TODO-Kommentare mit Code zu füllen oder zu ersetzen. Fügen Sie Kommentare mit Erklärungen zum Kontext hinzu.

Verwenden Sie die folgenden Prompts, um im Gemini Code Assist-Chat Code zu generieren:

  • „Schreibe eine Hauptfunktion, mit der eine Verbindung zur DATABASE hergestellt wird. Beziehe Systemdiagnosen ein.“
  • „Schreibe eine FUNCTION_OR_CLASS mit der folgenden Struktur: EXPLAIN_STRUCTURE.“

Nachdem Sie Code generiert haben, können Sie ihn mit einem Folge-Prompt verbessern:

  • „Verwende den Befehl /fix, um den generierten Code anzupassen, z. B. um Syntaxfehler zu korrigieren.“
  • „Füge fehlende Importe hinzu.“
  • „Führe den Befehl /fix für vom Chat generierten Code aus.“
Code bereinigen, vereinfachen und refaktorieren

Probieren Sie die folgenden Prompts im Gemini Code Assist-Chat aus:

  • „Kannst du die IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS in dieser Datei zusammenführen?“
  • „Wie würdest du die Funktion FUNCTION_NAME vereinfachen?“
  • „Kannst du FUNCTION_NAME_1 und FUNCTION_NAME_2 in einer Funktion zusammenführen?“
  • „Kannst du einige Variablen in FUNCTION_NAME inline einfügen?“
  • „Kannst du die Variablennamen in der Funktion FUNCTION_NAME vereinfachen?“
Lesbarkeit

Probieren Sie die folgenden Prompts im Gemini Code Assist-Chat aus:

  • „Schreibe die Funktion FUNCTION_NAME mit möglichst wenig Codezeilen.“
  • „Füge der Funktion FUNCTION_NAME Kommentare hinzu.“
  • „Entferne unnötige Leerzeichen aus der Funktion FUNCTION_NAME.“
  • „Formatiere die Funktion FUNCTION_NAME ähnlich wie den restlichen Code.“
Code Review

Probieren Sie die folgenden Prompts im Gemini Code Assist-Chat aus:

  • „Teile den Code in Abschnitte auf und erkläre jeden Abschnitt anhand unserer Codebasis.“
  • „Gibt es Variablen oder Keywords, die kürzer und selbsterklärender sein könnten?“
  • „Kannst du mir für diesen Code nützlichen Code aus dem Kontext des REPOSITORY_NAME_PACKAGE_MODULE geben?“
  • „Was hältst du von der Funktion FUNCTION_NAME?“
Debugging

Probieren Sie die folgenden Prompts im Gemini Code Assist-Chat aus:

  • „Ich erhalte eine Fehlermeldung, wenn ich versuche, X auszuführen/Y hinzuzufügen. Warum?“
  • „Kannst du in der Funktion FUNCTION_NAME einen Fehler finden?“
  • „Wie würdest du die Funktion FUNCTION_NAME angesichts dieser Fehlermeldung korrigieren?“
Lernen und Onboarding

Probieren Sie die folgenden Prompts im Gemini Code Assist-Chat aus:

  • „Teile diesen Code in Abschnitte auf und erkläre jeden Abschnitt anhand unserer Codebasis.“
  • „Zeige mir, wie die Funktion FUNCTION_NAME aufgerufen wird.“
  • „Zeige mir, wie die Hauptfunktion in der ENVIRONMENT_NAME-Umgebung ausgeführt wird.“
  • „Welche technische Verbesserung würde diesen Code leistungsstärker machen?“
  • „Zeige mir, wie FUNCTION_OR_CLASS_NAME implementiert wird, um bessere Ergebnisse zu erzielen, und füge das spezifische Element hinzu.“ Zum Beispiel: „Zeige mir, wie die Funktion ‚foo‘ implementiert wird, wobei ‚foo‘ der Name der Funktion ist.“
Migration

Probieren Sie die folgenden Prompts im Gemini Code Assist-Chat aus:

  • „Zeige mir eine Strategie, wie ich FILE_NAME von LANGUAGE_1 zu LANGUAGE_2 migrieren kann.“ Zum Beispiel von Go zu Python.
  • „Suche im Repository REPOSITORY_NAME nach einer Funktion, die der Funktion FUNCTION_NAME entspricht und die ich in der Sprache LANGUAGE_NAME verwenden kann.“

Probieren Sie den folgenden Transformationsworkflow für Chat-basierten oder generierten Code mit Prompts aus:

  1. „Nimm den FILENAME_COMPONENT-Code, der bereits in LANGUAGE_1 geschrieben wurde, und refaktoriere und migriere ihn zu LANGUAGE_2.“ Zum Beispiel von Go zu Python.
  2. Versuchen Sie nach der Codemigration Folgendes:
    • Wählen Sie kleinere Abschnitte aus und verwenden Sie /fix, um den Code nach Ihren Vorstellungen anzupassen.
    • Probieren Sie die folgenden Prompts aus:
      • „Gibt es etwas, das verbessert werden kann?“
      • „Nenne mir mögliche Probleme.“
      • „Wie würdest du diesen Code testen, wenn die Migration korrekt durchgeführt wurde?“
Dokumentation erstellen

Probieren Sie die folgenden Prompts im Gemini Code Assist-Chat aus:

  • „Fasse den Code im Paket oder Ordner X zusammen und erstelle Dokumentation zu den fünf wichtigsten Methoden.“
  • „Erstelle Dokumentation für FUNCTION_OR_CLASS_NAME.“
  • „Kürze die Dokumentation, aber behalte die wichtigsten Informationen bei.“
Unittests erstellen

Probieren Sie die folgenden Prompts im Gemini Code Assist-Chat aus:

  • „Erstelle Unittests für FILENAME.“
  • „Füge die relevantesten Testläufe für die Funktion FUNCTION_NAME hinzu.“
  • „Entferne die Testläufe, die deiner Meinung nach nicht viel Mehrwert bieten.“

Best Practices

  • Verwenden Sie relevante Variablen- und Funktionsnamen oder Code-Snippets. Dadurch orientieren sich die Codeanpassungen an den relevantesten Codebeispielen.
  • Verwenden Sie Index-Repositories, die Sie skalieren können, und vermeiden Sie nicht mehr unterstützte Funktionen. Die Codeanpassung hilft dabei, den Codestil, die Muster, die Codesemantik, das Wissen und die Implementierungen über die gesamte Codebasis hinweg konsistent zu halten. Beispiele für Repositories, die nicht skaliert werden sollten, sind nicht mehr unterstützte Funktionen, generierter Code und veraltete Implementierungen.
  • Verwenden Sie zum Abrufen von Code die Funktion zur Codegenerierung anstelle der Codevervollständigung. Formulieren Sie Ihre Prompts folgendermaßen „Erstelle anhand der Definition von FUNCTION_NAME genau dieselbe Funktion“ oder „Erstelle die exakte Implementierung von FUNCTION_NAME“.
  • Die Datei für den Code, den Sie abrufen möchten, sollte Includes oder Imports enthalten, damit Gemini den Kontext besser erfassen kann.
  • Führen Sie mit jedem Prompt nur eine Aktion aus. Wenn Sie beispielsweise Code abrufen und diesen Code in einer neuen Funktion implementieren lassen möchten, verwenden Sie dafür zwei Prompts.
  • Wenn Sie mehr als nur Code benötigen (z. B. eine Codeerklärung, einen Migrationsplan oder eine Fehlererläuterung), verwenden Sie die Codeanpassung im Chat. Dabei führen Sie eine Unterhaltung mit Gemini, in der Ihre Codebasis als Kontext berücksichtigt wird.
  • Die Generierung von KI-Modellen ist nicht deterministisch. Wenn Sie mit der Antwort nicht zufrieden sind, kann es helfen, denselben Prompt noch einmal auszuführen, um ein besseres Ergebnis zu erzielen.
  • Das Erstellen von Unittests funktioniert in der Regel besser, wenn Sie die Datei lokal öffnen und dann im Chat darum bitten, für diese Datei oder eine bestimmte Funktion Unittests zu generieren.

Relevantere Vorschläge mit Kontext aus Remote-Repository

Sie können kontextsensitivere und relevantere Codevorschläge erhalten, wenn Sie Gemini Code Assist anweisen, sich auf bestimmte Remote-Repositories zu konzentrieren. Wenn Sie im Chat das @-Symbol eingeben, können Sie mindestens ein Repository auswählen, das als primäre Kontextquelle für Ihre Prompts verwendet werden soll. Diese Funktion ist nützlich, wenn Sie an einer Aufgabe arbeiten, die sich hauptsächlich auf eine bestimmte Gruppe von Mikrodiensten, Bibliotheken oder Modulen bezieht.

So verwenden Sie im Chat Ihrer IDE ein Remote-Repository als Kontext:

  1. Beginnen Sie Ihren Prompt mit dem @-Symbol. Daraufhin wird eine Liste der verfügbaren indexierten Remote-Repositories angezeigt.
  2. Wählen Sie das Repository aus, das Sie für den Kontext verwenden möchten. Sie können auch den Repository-Namen eingeben, um die Liste entsprechend zu filtern.
  3. Nachdem Sie das Repository ausgewählt haben, schreiben Sie den Rest Ihres Prompts.

Gemini priorisiert dann beim Generieren einer Antwort das ausgewählte Repository.

Beispiele für Prompts

Nachfolgend finden Sie Beispiele für die Verwendung dieser Funktion:

  • Informationen zum Repository:
    • @REPOSITORY_NAME Wie ist dieses Repository aufgebaut?“
    • @REPOSITORY_NAME Ich bin ein neues Teammitglied. Kannst du mir einen Überblick über den Zweck dieses Repositorys und die wichtigsten Module geben?“
  • Codegenerierung und ‑änderung:
    • @REPOSITORY_NAME Implementiere eine Authentifizierungsfunktion ähnlich der in diesem Repository.“
    • @REPOSITORY_NAME Refaktoriere den folgenden Code, damit er den Konventionen im ausgewählten Repository entspricht.“
    • @REPOSITORY_A_NAME Wie kann ich die neuesten Funktionen aus diesem Repository verwenden, um meinen Code in REPOSITORY_B_NAME zu verbessern?“
  • Testen:
    • @UNIT_TEST_FILE_NAME Generiere anhand der Beispiele in der ausgewählten Datei Unittests für MODULE.“

Wenn Sie Remote-Repositories als Kontextquelle verwenden, erhalten Sie genauere und relevantere Vorschläge von Gemini Code Assist, die Ihnen dabei helfen können, schneller und effizienter zu programmieren.