Codeanpassung mit 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 können Sie Code-Empfehlungen erhalten, die auf den internen Bibliotheken, privaten APIs und dem Codierungsstil Ihrer Organisation basieren.

Hinweise

  1. Gemini Code Assist einrichten mit einem Enterprise-Abo.
  2. Codeanpassung für Gemini Code Assist einrichten

Codeanpassung verwenden

In der folgenden Tabelle sind Möglichkeiten zur Verwendung der Codeanpassung in Gemini Code Assist aufgeführt:

Formular So wird der Trigger ausgelöst Hinweise und Ressourcen

Chat in natürlicher Sprache

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

Berücksichtige Folgendes:

  • Das Chatprotokoll ist nicht verfügbar. Vermeiden Sie mehrstufige Anfragen.
  • Sie können nach weiteren Details zu Quellen fragen, einschließlich Links zu den jeweiligen Quellen.
  • Wenn Sie Code markieren oder auswählen, wenn Sie eine Nachricht im Chat senden, 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 in Ihrer IDE, entweder mit oder ohne ausgewählten Code, Befehlstaste+Eingabetaste (macOS) oder Strg+Eingabetaste. Weitere Informationen finden Sie unter Code mit Prompts generieren.
Code transformieren Geben Sie in der Schnellauswahlleiste in Ihrer IDE, entweder mit oder ohne ausgewählten Code, /fix ein. Weitere Informationen finden Sie unter Code mit Prompts generieren.
Automatische Vervollständigung Die Codeanpassung wird automatisch ausgelöst und bietet Vorschläge basierend auf dem, was Sie schreiben.

Berücksichtige Folgendes:

  • Für die Codevervollständigung ist ein bestimmter Vertrauensgrad erforderlich, um einen Vorschlag zu machen. Achten Sie darauf, dass genügend Code vorhanden ist, damit relevante Snippets abgerufen werden können.
  • Bei der Codevervollständigung wird geprüft, ob Sie die erforderlichen Bibliotheken haben, um bestimmte Elemente der Funktion zu verwenden.

Weitere Informationen finden Sie unter Codevervollständigungen erhalten.

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

Berücksichtige Folgendes:

  • Das ist nützlich, wenn Sie an einer Aufgabe arbeiten, die sich hauptsächlich auf eine bestimmte Gruppe von Microservices, Bibliotheken oder Modulen bezieht.

Weitere Informationen finden Sie unter Relevantere Vorschläge mit Kontext des Remote-Repositorys erhalten.

Anwendungsfälle und Prompt-Beispiele

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

Anwendungsfall Mögliche Lösungsansätze
Neuen Code schreiben

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

  • Code generieren, in dem Begriffe verwendet werden, die bereits in Ihrer Codebasis erwähnt werden.
  • Fügen Sie Ihren Code ein, z. B. eine Funktionssignatur oder Code mit TODO-Kommentaren, 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 aus dem Kontext hinzu.

Probieren Sie aus, mit den folgenden Prompts Code im Gemini Code Assist-Chat zu generieren:

  • „Schreibe eine Hauptfunktion, in der eine Verbindung zu DATABASE hergestellt wird. Systemdiagnosen einbeziehen.“
  • „Schreibe eine FUNCTION_OR_CLASS in 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. Syntaxfehler zu korrigieren.“
  • „Add missing imports.“ (Fehlende Importe hinzufügen)
  • „Probieren Sie /fix für von Chat generierten Code aus.“
Code bereinigen, vereinfachen und refaktorieren

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

  • „Kannst du IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS in diese Datei einfügen?“
  • „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?“
  • „Könntest 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 in möglichst wenigen Codezeilen.“
  • „Füge der Funktion Kommentare hinzu FUNCTION_NAME.“
  • „Entferne unnötige Leerzeichen in 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 nützlichen Code aus dem Kontext REPOSITORY_NAME_PACKAGE_MODULE für diesen Code 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 einen Fehler in der Funktion FUNCTION_NAME finden?“
  • „Wie würdest du die Funktion FUNCTION_NAME angesichts dieser Fehlermeldung beheben?“
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, wie die Funktion zum Anrufen von FUNCTION_NAME funktioniert.“
  • „Zeige, wie die Hauptfunktion in der ENVIRONMENT_NAME-Umgebung ausgeführt wird.“
  • „Welche wichtige technische Verbesserung können wir vornehmen, um die Leistung dieses Codes zu steigern?“
  • „Zeige mir die Implementierung von FUNCTION_OR_CLASS_NAME, um bessere Ergebnisse zu erzielen, und füge hinzu, was dieses Element ist.“ Zum Beispiel: „Zeige mir die Implementierung der Funktion ‚foo‘, wobei ‚foo‘ der Name der Funktion ist.“
Migration

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

  • „Gib mir eine Strategie für die Migration von FILE_NAME von LANGUAGE_1 zu LANGUAGE_2.“ – zum Beispiel von Go zu Python.
  • „Suche nach einer Funktion in der Sprache LANGUAGE_NAME, die der Funktion FUNCTION_NAME im Repository REPOSITORY_NAME entspricht.“

Probieren Sie den folgenden Chat-basierten oder Code-Generierungs-Transformationsworkflow mit Prompts aus:

  1. „Nimm den FILENAME_COMPONENT-Code, der bereits in LANGUAGE_1 geschrieben wurde, und refaktoriere und migriere ihn zu LANGUAGE_2“, z. B. von Go zu Python.
  2. Nachdem Sie Code migriert haben, versuchen Sie Folgendes:
    • Wählen Sie kleinere Abschnitte aus und verwenden Sie /fix, um den Text in den gewünschten Zustand zu bringen.
    • Probieren Sie es mit diesen Prompts:
      • „Gibt es etwas, das verbessert werden kann?“
      • „Nenne mir mögliche Probleme.“
      • „Wie würden Sie diesen Code testen, wenn die Migration korrekt ist?“
Dokumentation wird erstellt

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

  • „Fasse den Code im Paket oder Ordner X zusammen und stelle eine Dokumentation für die fünf wichtigsten Methoden bereit.“
  • „Generiere Dokumentation für FUNCTION_OR_CLASS_NAME.“
  • „Kürze die Dokumentation, behalte aber die wichtigsten Informationen bei.“
Generierung von Unittests

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

  • „Generiere Unittests für FILENAME.“
  • „Füge die relevantesten Testläufe für die Funktion FUNCTION_NAME hinzu.“
  • „Entfernen Sie Testläufe, die Ihrer Meinung nach nicht viel Wert bringen.“

Best Practices

  • Verwenden Sie relevante Variablen- und Funktionsnamen oder Code-Snippets. So wird die Codeanpassung auf die relevantesten Codebeispiele ausgerichtet.
  • Verwenden Sie Index-Repositories, die Sie skalieren möchten, und vermeiden Sie das Hinzufügen von eingestellten Funktionen. Die Codeanpassung trägt dazu bei, den Codestil, die Muster, die Codesemantik, das Wissen und die Implementierungen in der gesamten Codebasis zu skalieren. Schlechte Beispiele für Repositorys, die skaliert werden sollen, sind eingestellte Funktionen, generierter Code und alte Implementierungen.
  • Verwenden Sie für Anwendungsfälle zum Abrufen von Code die Codegenerierungsfunktion anstelle der Codevervollständigung. Verwenden Sie in Ihrem Prompt Formulierungen wie „Erstelle anhand der Definition von FUNCTION_NAME genau dieselbe Funktion“ oder „Erstelle die genaue Implementierung von FUNCTION_NAME“.
  • Die Datei, aus der Sie Code abrufen möchten, sollte „includes“ oder „imports“ enthalten, um die Kontextberücksichtigung von Gemini zu verbessern.
  • Führen Sie für jeden Prompt nur eine Aktion aus. Wenn Sie beispielsweise Code abrufen und diesen Code in einer neuen Funktion implementieren lassen möchten, führen Sie diese Schritte mit zwei Prompts aus.
  • Für Anwendungsfälle, in denen Sie mehr als nur Code benötigen, z. B. eine Codeerklärung, einen Migrationsplan oder eine Fehlererklärung, verwenden Sie die Codeanpassung für den Chat. Dabei führen Sie eine Unterhaltung mit Gemini, in der Ihre Codebasis im Kontext steht.
  • 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.
  • Das Generieren von Unittests funktioniert in der Regel besser, wenn Sie die Datei lokal öffnen und dann im Chat darum bitten, Unittests für diese Datei oder eine bestimmte Funktion zu generieren.

Relevantere Vorschläge mit Kontext aus Remote-Repositorys erhalten

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

So verwenden Sie ein Remote-Repository als Kontext:

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

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

Beispiele für Prompts

Hier sind einige Beispiele für die Verwendung dieser Funktion:

  • Ein Repository verstehen:
    • @REPOSITORY_NAME Wie ist die Gesamtstruktur dieses Repositorys?“
    • @REPOSITORY_NAME Ich bin ein neues Teammitglied. Kannst du mir einen Überblick über den Zweck dieses Repositorys und die wichtigsten Module geben?“
  • Für die Codegenerierung und ‑änderung:
    • @REPOSITORY_NAME Implementiere eine Authentifizierungsfunktion, die der in diesem Repository ähnelt.“
    • @REPOSITORY_NAME Überarbeite 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?“
  • Zum Testen:
    • @UNIT_TEST_FILE_NAME Generiere Unittests für MODULE basierend auf den Beispielen in der ausgewählten Datei.“

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