Используйте настройку кода 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. После выбора репозитория напишите остальную часть приглашения.

Примите во внимание следующее:

  • Это полезно, когда вы работаете над задачей, которая в основном связана с определенным набором микросервисов, библиотек или модулей.

Дополнительную информацию см. в разделе Получение более релевантных предложений с использованием контекста удаленного репозитория .

Варианты использования и примеры подсказок

В следующей таблице приведены рекомендации и примеры использования настройки кода в конкретных случаях использования:

Вариант использования Что стоит попробовать
Написание нового кода

Чтобы сгенерировать код в IDE или чате Gemini Code Assist, попробуйте выполнить следующие действия:

  • Сгенерируйте код, который будет использовать термины, уже упомянутые в вашей кодовой базе.
  • Вставьте свой код, например, функциональную сигнатуру или код с комментариями TODO , а затем попросите Gemini Code Assist заполнить или заменить комментарии TODO кодом. Добавьте комментарии с пояснениями из контекста.

Попробуйте сгенерировать код с помощью следующих подсказок в чате Gemini Code Assist:

  • «Напишите основную функцию, в которой создаётся подключение к DATABASE . Включите проверки работоспособности».
  • «Напишите FUNCTION_OR_CLASS в следующей структуре: EXPLAIN_STRUCTURE ».

После того как вы сгенерируете код, попробуйте воспользоваться подсказкой для его улучшения:

  • «Попробуйте команду /fix , чтобы исправить сгенерированный код, например, синтаксические ошибки».
  • «Добавить отсутствующие импортные данные».
  • «Попробуйте /fix для кода, сгенерированного чатом».
Очистка, упрощение и рефакторинг кода

Попробуйте следующие подсказки в чате Gemini Code Assist:

  • «Можете ли вы объединить IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS в этом файле?»
  • «Как бы вы упростили функцию FUNCTION_NAME
  • «Можно ли объединить FUNCTION_NAME_1 и FUNCTION_NAME_2 в одну функцию?»
  • «Не могли бы вы встроить некоторые переменные в FUNCTION_NAME
  • «Не могли бы вы упростить наименование переменных в функции FUNCTION_NAME
Читабельность

Попробуйте следующие подсказки в чате Gemini Code Assist:

  • «Запишите функцию FUNCTION_NAME , используя меньшее количество строк кода, если это возможно».
  • «Добавить комментарии к функции FUNCTION_NAME ».
  • «Удалите ненужные пробелы в функции FUNCTION_NAME ».
  • «Отформатируйте функцию FUNCTION_NAME аналогично остальному коду».
Обзор кода

Попробуйте следующие подсказки в чате Gemini Code Assist:

  • «Разделите код на части и объясните каждую часть, используя нашу кодовую базу».
  • «Есть ли переменные или ключевые слова, которые можно было бы сделать короче и понятнее?»
  • «Можете ли вы предоставить мне полезный код из контекста REPOSITORY_NAME_PACKAGE_MODULE для этого кода?»
  • «Что вы думаете о функции FUNCTION_NAME
Отладка

Попробуйте следующие подсказки в чате Gemini Code Assist:

  • «Я получаю сообщение об ошибке при попытке выполнить X/добавить Y. Почему?»
  • «Можете ли вы обнаружить ошибку в функции FUNCTION_NAME
  • «Как бы вы исправили функцию FUNCTION_NAME , учитывая это сообщение об ошибке?»
Обучение и адаптация

Попробуйте следующие подсказки в чате Gemini Code Assist:

  • «Разделите этот код на части и объясните каждую из них, используя нашу кодовую базу».
  • «Покажите, как вызвать функцию FUNCTION_NAME
  • «Покажите, как запустить основную функцию в среде ENVIRONMENT_NAME
  • «Какое ключевое техническое улучшение мы можем сделать, чтобы сделать этот код более производительным?»
  • «Покажите мне реализацию FUNCTION_OR_CLASS_NAME для достижения лучших результатов и добавьте конкретный элемент» — например, «Покажите мне реализацию функции foo, где foo — имя функции».
Миграция

Попробуйте следующие подсказки в чате Gemini Code Assist:

  • «Предложите мне стратегию переноса FILE_NAME с LANGUAGE_1 на LANGUAGE_2 » — например, с Go на Python.
  • «Для функции FUNCTION_NAME в репозитории REPOSITORY_NAME найдите мне эквивалентную функцию на языке LANGUAGE_NAME , которую я могу использовать».

Попробуйте следующий рабочий процесс преобразования на основе чата или генерации кода с использованием подсказок:

  1. «Возьмите код FILENAME_COMPONENT уже написанный на LANGUAGE_1 , проведите его рефакторинг и перенесите на LANGUAGE_2 » — например, из Go в Python.
  2. После переноса части кода попробуйте сделать следующее:
    • Выберите меньшие фрагменты и используйте /fix чтобы привести их в нужное вам состояние.
    • Попробуйте следующие подсказки:
      • «Есть ли что-то, что можно улучшить?»
      • «Назовите мне возможные болевые точки».
      • «Как бы вы проверили этот код, корректна ли эта миграция?»
Создание документации

Попробуйте следующие подсказки в чате Gemini Code Assist:

  • «Кратко опишите код в пакете или папке X и предоставьте документацию по пяти наиболее важным методам».
  • «Создать документацию для FUNCTION_OR_CLASS_NAME ».
  • «Сократите документацию, сохранив ключевую информацию».
Генерация модульных тестов

Попробуйте следующие подсказки в чате Gemini Code Assist:

  • «Сгенерировать модульные тесты для FILENAME ».
  • «Добавьте наиболее релевантные тестовые случаи для функции FUNCTION_NAME ».
  • «Удалите тестовые случаи, которые, по вашему мнению, не приносят особой ценности».

Лучшие практики

  • Используйте соответствующие имена переменных и функций или фрагменты кода. Это поможет вам настроить код, выбрав наиболее подходящие примеры.
  • Используйте репозитории индексов, которые вы хотите масштабировать, и избегайте добавления устаревших функций. Настройка кода помогает масштабировать код с учётом стиля, шаблонов, семантики кода, знаний и реализаций по всей кодовой базе. Неудачными примерами репозиториев для масштабирования являются устаревшие функции, сгенерированный код и устаревшие реализации.
  • Для случаев извлечения кода используйте функцию генерации кода вместо автодополнения . Используйте подсказки, например: «Используя определение FUNCTION_NAME , сгенерируйте точно такую ​​же функцию» или «Сгенерируйте точную реализацию FUNCTION_NAME ».
  • Включите или импортируйте в файл код, который вы хотите извлечь, чтобы улучшить контекстную осведомленность Gemini.
  • Выполняйте только одно действие для каждого запроса. Например, если вы хотите получить код и реализовать его в новой функции, выполните эти шаги для двух запросов.
  • В случаях, когда вам нужно больше, чем просто код (например, объяснение кода, план миграции или объяснение ошибок), используйте настройку кода для чата, где вы общаетесь с Gemini на основе вашей кодовой базы в контексте.
  • Обратите внимание, что генерация модели ИИ недетерминирована . Если вы не удовлетворены ответом, повторное выполнение того же запроса может дать лучший результат.
  • Обратите внимание, что генерация модульных тестов обычно работает лучше, если вы откроете файл локально, а затем в чате попросите сгенерировать модульные тесты для этого файла или определенной функции.

Получайте более релевантные предложения с учетом контекста удаленного репозитория

Вы можете получать более контекстно-зависимые и релевантные предложения по коду, указав Gemini Code Assist сосредоточиться на конкретных удалённых репозиториях. Используя символ @ в чате, вы можете выбрать один или несколько репозиториев, которые будут использоваться в качестве основного источника контекста для ваших подсказок. Это полезно, когда вы работаете над задачей, которая в основном связана с определённым набором микросервисов, библиотек или модулей.

Чтобы использовать удаленный репозиторий в качестве контекста, выполните следующие действия в чате вашей IDE:

  1. Начните запрос с символа @ . Появится список доступных удалённых репозиториев, которые индексируются.
  2. Выберите из списка репозиторий, который вы хотите использовать для контекста. Вы также можете начать вводить имя репозитория, чтобы отфильтровать список.
  3. После выбора репозитория напишите остальную часть приглашения.

Затем Gemini отдаст приоритет выбранному репозиторию при формировании ответа.

Примеры подсказок

Вот несколько примеров того, как можно использовать эту функцию:

  • Чтобы понять репозиторий:
    • " @ REPOSITORY_NAME Какова общая структура этого репозитория?"
    • « @REPOSITORY_NAME Я новый член команды. Можете ли вы дать мне обзор назначения этого репозитория и его REPOSITORY_NAME модулей?»
  • Для генерации и модификации кода:
    • " @ REPOSITORY_NAME Реализуйте функцию аутентификации, аналогичную той, что есть в этом репозитории."
    • " @ REPOSITORY_NAME Выполните рефакторинг следующего кода в соответствии с соглашениями выбранного репозитория."
    • " @ REPOSITORY_A_NAME Как я могу использовать последние функции из этого репозитория для улучшения своего кода в REPOSITORY_B_NAME ?"
  • Для тестирования:
    • " @ UNIT_TEST_FILE_NAME Сгенерировать модульные тесты для MODULE на основе примеров в выбранном файле."

Используя удаленные репозитории в качестве целевого источника контекста, вы можете получать более точные и релевантные предложения от Gemini Code Assist, которые помогут вам писать код быстрее и эффективнее.