Utiliser la personnalisation du code Gemini Code Assist

Ce document explique comment utiliser la personnalisation du code Gemini Code Assist et fournit quelques bonnes pratiques. Cette fonctionnalité vous permet de recevoir des recommandations de code, qui s'appuient sur les bibliothèques internes, les API privées et le style de codage de votre organisation.

Avant de commencer

  1. Configurez Gemini Code Assist avec un abonnement Enterprise.
  2. Configurez la personnalisation du code Gemini Code Assist avec un abonnement Enterprise.

Utiliser la personnalisation du code

Le tableau suivant présente les différentes façons d'utiliser la personnalisation du code Gemini Code Assist:

Formulaire Comment déclencher Remarques et ressources

Chat en langage naturel

Saisissez une requête en langage naturel dans le chat Gemini Code Assist de l'IDE.

Réfléchissez aux éléments suivants :

  • L'historique des discussions n'est pas disponible. Évitez les requêtes en plusieurs étapes.
  • Vous pouvez demander des informations supplémentaires sur les sources, y compris des liens vers les sources spécifiques.
  • Si vous mettez en surbrillance ou sélectionnez du code lorsque vous envoyez un message dans le chat, Gemini Code Assist utilise ce code pour améliorer la personnalisation du code et la qualité du chat.

Pour en savoir plus, consultez la section Chatter avec Gemini Code Assist.

Générer du code Dans la barre de sélection rapide de votre IDE, avec ou sans code sélectionné, appuyez sur Commande+Entrée (sous macOS) ou sur Ctrl+Entrée. Pour en savoir plus, consultez la section Générer du code avec des requêtes.
Code de transformation Dans la barre de sélection rapide de votre IDE, avec ou sans code sélectionné, saisissez /fix. Pour en savoir plus, consultez la section Générer du code avec des requêtes.
Saisie semi-automatique La personnalisation du code est déclenchée automatiquement et fournit des suggestions en fonction de ce que vous écrivez.

Réfléchissez aux éléments suivants :

  • La saisie semi-automatique du code nécessite un certain niveau de confiance pour proposer une suggestion. Assurez-vous qu'une quantité importante de code est disponible afin que les extraits pertinents soient récupérés.
  • La complétion de code vérifie si vous disposez des bibliothèques requises pour utiliser certains éléments de la fonction.

Pour en savoir plus, consultez la section Obtenir des suggestions de complétion de code.

Cas d'utilisation et exemples de requêtes

Le tableau suivant fournit des conseils et des exemples sur l'utilisation de la personnalisation du code dans des cas d'utilisation spécifiques:

Cas d'utilisation Solutions à essayer
Écrire du nouveau code

Pour générer du code dans votre IDE ou dans le chat Gemini Code Assist, procédez comme suit:

  • Générez du code qui utiliserait des termes déjà mentionnés dans votre codebase.
  • Collez votre code, par exemple une signature fonctionnelle ou un code avec des commentaires TODO, puis demandez à Gemini Code Assist de remplir ou de remplacer les commentaires TODO par du code. Ajoutez des commentaires avec une explication du contexte.

Essayez de générer du code avec les requêtes suivantes dans le chat Gemini Code Assist:

  • "Écrivez une fonction principale dans laquelle une connexion à DATABASE est créée. Incluez des vérifications de l'état."
  • "Écrivez un FUNCTION_OR_CLASS dans la structure suivante : EXPLAIN_STRUCTURE."

Après avoir généré du code, essayez d'utiliser une requête de suivi pour l'améliorer:

  • "Essayez la commande /fix pour ajuster le code généré (par exemple, les erreurs de syntaxe)."
  • "Ajoutez les importations manquantes."
  • "Essayez /fix sur le code généré par le chat."
Nettoyer, simplifier et refactoriser le code

Essayez les requêtes suivantes dans le chat Gemini Code Assist:

  • "Pouvez-vous fusionner IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS dans ce fichier ?"
  • "Comment simplifier la fonction FUNCTION_NAME ?"
  • "Pouvez-vous fusionner FUNCTION_NAME_1 et FUNCTION_NAME_2 en une seule fonction ?"
  • "Pouvez-vous insérer des variables dans FUNCTION_NAME ?"
  • "Pourriez-vous simplifier le nom des variables dans la fonction FUNCTION_NAME ?"
Lisibilité

Essayez les requêtes suivantes dans le chat Gemini Code Assist:

  • "Écrivez la fonction FUNCTION_NAME en moins de lignes de code, si possible."
  • "Ajoutez des commentaires à la fonction FUNCTION_NAME."
  • "Supprimez les espaces vides inutiles dans la fonction FUNCTION_NAME."
  • "Mettez en forme la fonction FUNCTION_NAME de la même manière que le reste du code."
Réviser le code

Essayez les requêtes suivantes dans le chat Gemini Code Assist:

  • "Divisez le code en parties et expliquez chaque partie à l'aide de notre codebase."
  • "Existe-t-il des variables ou des mots clés qui pourraient être plus courts et plus explicites ?"
  • "Pouvez-vous m'indiquer un code utile à partir du contexte REPOSITORY_NAME_PACKAGE_MODULE pour ce code ?"
  • "Que pensez-vous de la fonction FUNCTION_NAME ?"
Débogage

Essayez les requêtes suivantes dans le chat Gemini Code Assist:

  • "Une erreur s'affiche lorsque j'essaie de faire X/d'ajouter Y. Pourquoi ?"
  • "Pouvez-vous repérer une erreur dans la fonction FUNCTION_NAME ?"
  • "Comment corriger la fonction FUNCTION_NAME en fonction de ce message d'erreur ?"
Apprentissage et intégration

Essayez les requêtes suivantes dans le chat Gemini Code Assist:

  • "Divisez ce code en parties et expliquez chacune d'elles à l'aide de notre codebase."
  • "Montrez-moi comment appeler la fonction FUNCTION_NAME."
  • "Montrez comment exécuter la fonction principale dans l'environnement ENVIRONMENT_NAME."
  • "Quelle est l'amélioration technique clé que nous pouvons apporter pour améliorer les performances de ce code ?"
  • "Montre-moi l'implémentation de FUNCTION_OR_CLASS_NAME pour obtenir de meilleurs résultats et ajoute ce que cet élément spécifique est" (par exemple, "Montre-moi l'implémentation de la fonction foo, où foo est le nom de la fonction.")
Migration

Essayez les requêtes suivantes dans le chat Gemini Code Assist:

  • "Proposez-moi une stratégie pour migrer FILE_NAME de LANGUAGE_1 vers LANGUAGE_2" (par exemple, de Go vers Python).
  • "Étant donné la fonction FUNCTION_NAME dans le dépôt REPOSITORY_NAME, trouvez-moi une fonction équivalente dans le langage LANGUAGE_NAME que je peux utiliser."

Essayez le workflow de transformation basé sur le chat ou la génération de code suivant à l'aide d'invites:

  1. "Prendre le code FILENAME_COMPONENT déjà écrit en LANGUAGE_1, le refactoriser et le migrer vers LANGUAGE_2", par exemple, de Go vers Python.
  2. Après avoir migré du code, essayez les étapes suivantes :
    • Sélectionnez des segments plus petits et utilisez /fix pour les mettre dans l'état souhaité.
    • Essayez les requêtes suivantes:
      • "Y a-t-il quelque chose que nous pourrions améliorer ?"
      • "Donne-moi des exemples de difficultés possibles."
      • "Comment tester ce code pour vérifier que la migration est correcte ?"
Générer de la documentation

Essayez les requêtes suivantes dans le chat Gemini Code Assist:

  • "Résumez le code du package ou du dossier X et fournissez la documentation des cinq méthodes les plus importantes."
  • "Générer de la documentation pour FUNCTION_OR_CLASS_NAME."
  • "Réduisez la documentation tout en conservant les informations clés."
Génération de tests unitaires

Essayez les requêtes suivantes dans le chat Gemini Code Assist:

  • "Générer des tests unitaires pour FILENAME"
  • "Ajoutez les scénarios de test les plus pertinents pour la fonction FUNCTION_NAME."
  • "Supprimez les cas de test qui, selon vous, n'apportent pas beaucoup de valeur."

Bonnes pratiques

  • Utilisez des noms de variables et de fonctions ou des extraits de code pertinents. Cela oriente la personnalisation du code vers les exemples de code les plus pertinents.
  • Utilisez des dépôts d'index que vous souhaitez faire évoluer et évitez d'ajouter des fonctionnalités obsolètes. La personnalisation du code permet d'adapter le style, les modèles, la sémantique, les connaissances et les implémentations du code à l'ensemble du codebase. Les fonctionnalités obsolètes, le code généré et les implémentations obsolètes sont des exemples de mauvais choix de dépôts à faire évoluer.
  • Pour les cas d'utilisation de récupération de code, utilisez la fonctionnalité de génération de code plutôt que la complétion de code. Utilisez des requêtes telles que "À l'aide de la définition de FUNCTION_NAME, générez exactement la même fonction" ou "Générez l'implémentation exacte de FUNCTION_NAME".
  • Inclure ou importer le code que vous souhaitez récupérer dans le fichier pour améliorer la prise en compte du contexte par Gemini.
  • N'exécutez qu'une seule action pour chaque requête. Par exemple, si vous souhaitez récupérer du code et l'implémenter dans une nouvelle fonction, effectuez ces étapes sur deux invites.
  • Pour les cas d'utilisation où vous souhaitez plus que du code (par exemple, une explication du code, un plan de migration ou une explication d'erreur), utilisez la personnalisation du code pour le chat, où vous discutez avec Gemini avec votre codebase dans son contexte.
  • Notez que la génération de modèles d'IA n'est pas déterministe. Si vous n'êtes pas satisfait de la réponse, exécuter à nouveau la même requête peut vous permettre d'obtenir un meilleur résultat.
  • Notez que la génération de tests unitaires fonctionne généralement mieux si vous ouvrez le fichier localement, puis demandez à générer des tests unitaires pour ce fichier ou une fonction spécifique depuis le chat.