0%

前言

在現代軟體開發中,效率與自動化是關鍵。Gemini CLI 是一個由 Google Gemini 模型驅動的智慧型命令列介面(CLI)工具,旨在成為程式開發者的得力助手。它不僅能理解您的自然語言指令,還能執行程式碼、管理檔案、搜尋資訊,甚至協助您撰寫技術文章。本文將帶您了解如何有效利用 Gemini CLI,提升您的開發工作流程。

Gemini CLI 是什麼?

Gemini CLI 是一個基於大型語言模型(LLM)的互動式代理程式。它能夠:

  • 理解自然語言:您可以直接用中文或英文提問或下達指令,無需學習複雜的命令語法。

  • 執行程式碼:支援多種程式語言的程式碼執行,並能提供執行結果。

  • 檔案系統操作:讀取、寫入、搜尋檔案,甚至根據您的需求修改檔案內容。

  • 專案感知:了解您當前的工作目錄結構,並能根據專案上下文提供更精準的協助。

  • 自動化任務:協助您完成重複性高或需要大量知識查詢的任務,例如撰寫文件、重構程式碼、除錯等。

安裝與設定

在使用 Gemini CLI 之前,您需要先進行安裝並設定您的 Google Gemini API Key。

1. 安裝 Gemini CLI

Gemini CLI 通常可以透過 npm (Node Package Manager) 進行全域安裝。請確保您的系統已安裝 Node.js 和 npm。

1
npm install -g @google/gemini-cli

注意:請參考 Gemini CLI 官方文件 以獲取最新的安裝指南和系統要求。

2. 設定 API Key

Gemini CLI 需要您的 Google Gemini API Key 才能與 Gemini 模型進行通訊。您可以從 Google AI Studio 取得您的 API Key。

取得 API Key 後,建議將其設定為環境變數,以便 Gemini CLI 自動偵測。

Linux/macOS:

1
export GEMINI_API_KEY="YOUR_API_KEY"

Windows (Command Prompt):

1
set GEMINI_API_KEY="YOUR_API_KEY"

Windows (PowerShell):

1
$env:GEMINI_API_KEY="YOUR_API_KEY"

為了讓 API Key 持久化,您可以將其加入到您的 shell 設定檔中(例如 ~/.bashrc, ~/.zshrc 或 Windows 的系統環境變數)。

3. 基本指令結構

Gemini CLI 的基本指令結構通常如下:

1
gemini [指令] [參數]

例如,要向 Gemini 提問:

1
gemini ask "請解釋什麼是 RESTful API?"

具體的指令和參數會根據 Gemini CLI 的功能而有所不同。您可以使用 gemini --helpgemini [指令] --help 來查看可用的指令和選項。

1
gemini --help
1
gemini ask --help

如何與 Gemini CLI 互動?

與 Gemini CLI 的互動非常直觀,就像與一位資深的開發夥伴對話一樣。您只需在命令列中輸入您的問題或指令,Gemini CLI 便會嘗試理解並執行。

1. 提問與查詢

您可以向 Gemini CLI 提出各種問題,無論是程式設計概念、特定函式庫的使用方法,或是除錯技巧。

範例:

1
請問 JavaScript 中的閉包(Closure)是什麼?
1
如何在 Python 中讀取 CSV 檔案?

2. 檔案操作

Gemini CLI 可以幫助您管理專案檔案。您可以要求它讀取檔案內容、搜尋特定模式,甚至修改檔案。

範例:

1
讀取 `src/main.js` 的內容。
1
在 `utils/helper.js` 中搜尋所有 `TODO` 註解。
1
將 `config.js` 中的 `DEBUG = true` 改為 `DEBUG = false`。

3. 執行 Shell 指令

當需要執行系統指令時,Gemini CLI 也能代勞。它會在執行前告知您指令的意圖,確保操作安全。

範例:

1
安裝專案的 npm 依賴。

(Gemini CLI 可能會回應:我將執行 npm install。這將會安裝 package.json 中定義的所有依賴。

1
列出當前目錄下的所有檔案。

4. 程式碼生成與修改

這是 Gemini CLI 最強大的功能之一。您可以描述您的需求,讓它生成程式碼片段,甚至協助您重構現有程式碼。

範例:

1
為 `src/auth.py` 中的 `login` 函式撰寫單元測試。
1
將 `components/Button.js` 中的類別組件重構為函式組件。

實際應用場景

  • 快速原型開發:快速生成基礎程式碼結構或功能模組。
  • 除錯與問題解決:分析錯誤訊息,提供可能的解決方案。
  • 文件撰寫:根據程式碼或需求生成技術文件、API 文件。
  • 學習新技術:即時查詢不熟悉的語法或概念。
  • 自動化重複任務:例如自動化程式碼格式化、依賴更新等。

結語

Gemini CLI 是一個不斷學習和進化的工具,它將極大地改變您與程式碼互動的方式。透過自然語言的溝通,您可以將更多精力放在解決核心業務邏輯上,而將繁瑣的、重複性的工作交給 Gemini CLI。開始探索它的潛力,讓您的開發工作更加高效和愉快吧!

前言

Nuxt3相關套件的教學資源真的很少,Nuxt3一直有在更新上導致flowbite套件的使用方法跟網路上文章似乎都有些不一樣了,剛好踩了這個坑就隨手紀錄一下或許有些人會有一樣的問題。

閱讀全文 »

前言

由於近期業務需求需要去幫忙架設 Ocelot的api gateway提供給部門使用,至於為什麼會採用這個而不是常見的 kong 或者是 spring cloud gateway 等等的方式,主要基於部分功能需要上Azure雲能申請的資源有限,部門內部的人員大多數又只會C#,所以只能透過這方式來建立api gateway了,但建立的時候發現官方文件寫的建立方式好像有一點落差,看起來有點像是.net core 6以下的作法,文件上的很多方法實質上看起來應該已經沒辦法用了。

所以參考一些文獻整理後打算寫一篇來幫助自己未來有需要時可以回憶。

閱讀全文 »

前言

最近在實作ETL功能的相關系統需要做大量資料的寫入,所以必須確保資料能夠正確寫入以及清除,系統中需要有失敗後重新操作的需求,在重複操作的過程也必須限定操作次數以免系統卡死。

所以參考一些文獻整理後採取以下的方法來實作。

閱讀全文 »

前言

最近專案有新的需求需要協助同事在前端建置簡單的管理架構,方便他未來在專案上能夠好好地進行管理以及規劃,建置的同時我也將自己的方法給記錄下來,方便未來做使用以及對自己的省思。

閱讀全文 »

LRU(Least Recently Used Cache) 筆記

前言

最近由於工作上的需求要研究關於cache,做些功課後發現有個常見的例子是,當用戶訪問不同網頁時,瀏覽器需要cache在對應網頁的一些資料,這樣當下次進到同一個頁面的時候,就可以提升網頁載入速度,頁面資料可以直接從cache讀取。所以必須有一些規則來管理cache的使用,而LRU(Least Recently Used) cache就是其中之一,直接翻譯就是「不常使用的資料重要性是最低的,應該優先刪除」。這個規則還滿人經常使用的資料,肯定相對更重要因此記錄下來。

閱讀全文 »