Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
使用 Gemini Code Assist 程式碼自訂功能
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
本文說明如何使用 Gemini Code Assist 程式碼自訂功能,並提供幾項最佳做法。這項功能會參考貴機構的內部程式庫、私人 API 和程式設計樣式,提供程式碼建議。
事前準備
-
透過企業版訂閱方案設定 Gemini Code Assist。
-
設定 Gemini Code Assist 程式碼自訂功能。
如何使用程式碼自訂功能
下表列出 Gemini Code Assist 程式碼自訂功能的使用方式:
| 表單 |
如何觸發 |
附註和資源 |
自然語言對話
|
在 IDE 的 Gemini Code Assist 對話中輸入自然語言提示。 |
請把握以下幾項重點:
- 無法查看對話記錄。避免多步驟查詢。
- 你可以要求提供來源的詳細資料,包括特定來源的連結。
- 在對話中傳送訊息時,如果醒目顯示或選取程式碼,Gemini Code Assist 會使用該程式碼提升程式碼自訂程度和對話品質。
詳情請參閱「與 Gemini Code Assist 對話」。
|
| 生成程式碼 |
在 IDE 的快速挑選列中,無論是否選取程式碼,按下 Command+Enter 鍵 (macOS) 或 Control+Enter 鍵。 |
詳情請參閱「使用提示生成程式碼」。 |
| 轉換程式碼 |
在 IDE 的快速挑選列中,無論是否選取程式碼,輸入 /fix。 |
詳情請參閱「使用提示生成程式碼」。 |
| 自動完成 |
系統會自動觸發程式碼自訂功能,並根據您輸入的內容提供建議。 |
請把握以下幾項重點:
- 程式碼完成功能需要達到一定程度的信賴度,才會提出建議。請確保有大量程式碼可用,以便擷取相關程式碼片段。
- 程式碼自動完成功能會檢查您是否擁有必要程式庫,以便使用函式的特定元素。
詳情請參閱「取得程式碼完成建議」。
|
| 遠端存放區環境 |
- 提示必須以 @ 符號開頭。系統會顯示已建立索引的可用遠端存放區清單。
- 從清單中選取要用於情境的存放區。
你也可以輸入存放區名稱來篩選清單。
- 選取存放區後,請撰寫提示的其餘部分。
|
請把握以下幾項重點:
- 代理模式不支援這項功能。
- 如果您要處理的工作大多與特定微服務、程式庫或模組相關,這項功能就非常實用。
詳情請參閱「透過遠端存放區內容取得更符合需求的建議」。
|
應用情境和提示範例
下表提供指引和範例,說明如何在特定用途中使用程式碼自訂功能:
| 用途 |
值得一試的操作 |
| 編寫新程式碼 |
如要在 IDE 或 Gemini Code Assist 對話中生成程式碼,請嘗試下列做法:
- 生成程式碼,使用程式碼集已提及的字詞。
- 貼上程式碼,例如函式簽章或含有註解的程式碼,然後要求 Gemini Code Assist 填入或取代註解。
TODOTODO從內容新增附有說明的註解。
在 Gemini Code Assist 對話中,使用下列提示詞生成程式碼:
- 「Write a main function where a connection to
DATABASE is created. 包括健康檢查。」
- 「請以以下結構撰寫
FUNCTION_OR_CLASS:
EXPLAIN_STRUCTURE。」
產生程式碼後,請嘗試使用後續提示詞來改善程式碼:
- 「請嘗試使用
/fix 指令調整產生的程式碼,例如修正語法錯誤。」
- 「Add missing imports」(新增缺少的匯入項目)。
- 「Try
/fix on chat-generated code.」
|
| 清理、簡化及重構程式碼 |
在 Gemini Code Assist 對話中試試下列提示:
- 「Can you merge
IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS
in this file?」(可以合併這個檔案中的 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?」(請簡化函式 FUNCTION_NAME 中的變數命名)。
|
| 可讀性 |
在 Gemini Code Assist 對話中試試下列提示:
- 「請盡可能以較少的程式碼行數編寫
FUNCTION_NAME 函式。」
- 「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.」
- 「是否有更短且更容易瞭解的變數或關鍵字?」
- 「Can you give me useful code from the
REPOSITORY_NAME_PACKAGE_MODULE context for
this code?」
- 「你對函式
FUNCTION_NAME 有什麼看法?」
|
| 偵錯 |
在 Gemini Code Assist 對話中試試下列提示:
- 「我在嘗試執行 X/新增 Y 時收到錯誤訊息。為什麼?」
- 「Can you spot an error in the function
FUNCTION_NAME?」
- 「How would you fix the function
FUNCTION_NAME given this error
message?」
|
| 學習與新手上路 |
在 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?」
- 「我們可以在技術上進行哪些重大改良,讓這段程式碼的效能更高?」
- 「Show me the implementation of
FUNCTION_OR_CLASS_NAME to achieve better
results and add what that specific element is」(顯示 FUNCTION_OR_CLASS_NAME 的實作方式,以獲得更佳結果,並新增該特定元素) - 例如「Show me the implementation of function foo where foo is the name of
the function.」(顯示函式 foo 的實作方式,其中 foo 是函式的名稱)。
|
| 遷移 |
在 Gemini Code Assist 對話中試試下列提示:
- 「請提供策略,協助我將
FILE_NAME 從 LANGUAGE_1 遷移至 LANGUAGE_2」- 例如從 Go 遷移至 Python。
- 「Given the function
FUNCTION_NAME in
repository REPOSITORY_NAME, find me an
equivalent function in language
LANGUAGE_NAME that I can use.」(在存放區 REPOSITORY_NAME 中,找到與函式 FUNCTION_NAME 等效的函式,並以語言 LANGUAGE_NAME 撰寫,供我使用。)
請嘗試使用提示,透過下列以對話或程式碼生成為基礎的轉換工作流程:
- 「將以
LANGUAGE_1 編寫的 FILENAME_COMPONENT 程式碼重構並遷移至 LANGUAGE_2」—例如從 Go 遷移至 Python。
- 遷移部分程式碼後,請嘗試下列做法:
- 選取較小的區塊,然後使用
/fix 調整至所需狀態。
- 請嘗試使用下列提示:
- 「有什麼地方可以改進嗎?」
- 「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.」(為「<0x0A> FUNCTION_OR_CLASS_NAME」產生文件)。
- 「縮短說明文件,同時保留重要資訊。」
|
| 生成單元測試 |
在 Gemini Code Assist 對話中試試下列提示:
- 「Generate unit tests for
FILENAME.」(為 FILENAME 生成單元測試)。
- 「為
FUNCTION_NAME 函式新增最相關的測試案例。」
- 「移除您認為價值不高的測試案例。」
|
最佳做法
- 使用相關的變數和函式名稱或程式碼片段。這項指引會根據最相關的程式碼範例,引導您自訂程式碼。
- 使用要擴充的索引存放區,並避免新增已淘汰的功能。程式碼自訂功能有助於在整個程式碼集中,擴展程式碼樣式、模式、程式碼語意、知識和實作項目。不適合擴充的存放區範例包括已淘汰的功能、產生的程式碼和舊版實作項目。
- 如要擷取程式碼,請使用程式碼生成功能,而非程式碼完成功能。使用「根據
FUNCTION_NAME 的定義,生成完全相同的函式」或「生成 FUNCTION_NAME 的確切實作內容」等語言提示。
- 在要擷取的程式碼檔案中加入 include 或 import,提升 Gemini 的情境感知能力。
- 每個提示只能執行一個動作。舉例來說,如要擷取程式碼並在新函式中實作,請透過兩道提示執行下列步驟。
- 如要處理不只是程式碼的用途 (例如程式碼說明、遷移計畫或錯誤說明),請使用程式碼自訂功能進行對話,與 Gemini 討論程式碼集內容。
- 請注意,AI 模型生成內容具有不確定性。如果對回覆不滿意,再次執行相同的提示可能會得到更好的結果。
- 請注意,生成單元測試時,如果在本機開啟檔案,然後在對話中要求為該檔案或特定函式生成單元測試,通常效果會更好。
根據遠端存放區內容取得更符合需求的建議
你可以引導 Gemini Code Assist 專注於特定遠端存放區,取得更符合情境的相關程式碼建議。在對話中使用 @ 符號,即可選取一或多個存放區,做為提示的主要情境來源。如果您要處理的工作大多與特定微服務、程式庫或模組相關,這項功能就非常實用。
如要將遠端存放區做為脈絡,請在 IDE 的即時通訊中按照下列步驟操作:
- 提示必須以 @ 符號開頭。系統會顯示已建立索引的可用遠端存放區清單。
- 從清單中選取要用於情境的存放區。你也可以輸入存放區名稱來篩選清單。
- 選取存放區後,請撰寫提示的其餘部分。
這樣 Gemini 在生成回覆時,就會優先使用所選存放區的內容。
提示範例
以下列舉幾個使用這項功能的例子:
- 如要瞭解存放區:
- 「@
REPOSITORY_NAME 這個存放區的整體結構為何?」
- 「@
REPOSITORY_NAME 我是新加入團隊的成員,請簡要說明這個存放區的用途和主要模組。」
- 生成及修改程式碼:
- 「@
REPOSITORY_NAME 實作與這個存放區類似的驗證函式。」
- 「@
REPOSITORY_NAME 請按照所選存放區的慣例,重構下列程式碼。」
- 「@
REPOSITORY_A_NAME 如何使用這個存放區的最新函式,改善 REPOSITORY_B_NAME 中的程式碼?」
- 測試:
- 「@
UNIT_TEST_FILE_NAME Generate unit tests for MODULE based on the examples in the selected file.」(根據所選檔案中的範例,為 MODULE 生成單元測試)。
將遠端存放區做為情境的重點來源,Gemini Code Assist 就能提供更準確且相關的建議,協助您更快速有效率地編寫程式碼。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-10-23 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-10-23 (世界標準時間)。"],[],[]]