0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gemini CLI: AIと対話しながら開発を進める新しいコーディング体験

Posted at

はじめに

こんにちは!普段、開発業務でターミナルとにらめっこしている皆さん、コーディングをもっと効率的かつ直感的に進めたいと思ったことはありませんか?

今回紹介する Gemini CLI は、Googleが開発した大規模言語モデル「Gemini」をコマンドラインインターフェース(CLI)に統合した、まさに次世代の開発ツールです。まるで優秀なアシスタントとペアプログラミングするように、自然言語で対話しながらファイル操作、コード生成、リファクタリング、デバッグなど、さまざまなタスクを完結させることができます。

この記事では、Gemini CLIの基本的な機能と、具体的なユースケースを交えながら、その魅力に迫ります。

Gemini CLIで何ができるのか?

Gemini CLIは、単なるコマンド実行ツールではありません。現在の作業ディレクトリやファイルの内容を理解し、文脈に応じた的確なサポートを提供してくれます。

以下は、Gemini CLIができることのほんの一例です。

  • ファイルシステムの操作: lsmkdirのような基本的なコマンドはもちろん、「このディレクトリにある*.tsファイルの一覧を見せて」といった曖昧な指示でも意図を汲み取ってくれます。
  • ファイルの読み書き: 「main.pyUserクラスの定義部分を見せて」と頼めば、ファイル全体をcatするのではなく、該当箇所だけをピンポイントで表示してくれます。
  • コードの検索と分析: 「ApiServiceを呼び出している箇所をすべてリストアップして」といった、IDEの機能に近い高度なコード検索も可能です。
  • コードの生成と修正: 「try-catchブロックを追加してエラー処理を実装して」とお願いするだけで、文脈に合ったコードを提案・修正してくれます。
  • シェルコマンドの実行: npm installgit commitなど、使い慣れたシェルコマンドも自然言語の指示で実行できます。複雑なコマンドのオプションを覚えなくても、「テストを実行して結果を教えて」と話しかけるだけです。
  • Web検索: 「ReactuseEffectの最新のドキュメントを調べて」のように、開発中に気になったことをCLIから離れることなく解決できます。

具体的なユースケース

言葉だけではイメージが湧きにくいと思うので、具体的なシナリオを見ていきましょう。

シナリオ1: 新しいReactコンポーネントの作成

空のディレクトリから、新しいReactコンポーネントを作成してみます。

あなた:

Buttonコンポーネントを作りたい。componentsディレクトリを作成して、その中にButton.tsxButton.module.cssを設置して。

Gemini CLI:

mkdir components
touch components/Button.tsx
touch components/Button.module.css

componentsディレクトリと、その中にButton.tsxButton.module.cssを作成しました。

あなた:

Button.tsxに、propsとしてlabelonClickを受け取る基本的なコンポーネントのコードを書いて。CSSモジュールもインポートしてね。

Gemini CLI:

components/Button.tsxに以下の内容を書き込みます。

import React from 'react';
import styles from './Button.module.css';

interface ButtonProps {
  label: string;
  onClick: () => void;
}

const Button: React.FC<ButtonProps> = ({ label, onClick }) => {
  return (
    <button className={styles.button} onClick={onClick}>
      {label}
    </button>
  );
};

export default Button;

このように、一連の作業を対話形式でスムーズに進めることができます。

シナリオ2: 既存コードのリファクタリング

既存のPythonコードにエラーハンドリングを追加してみましょう。

あなた:

api_client.pyfetch_data関数を読んで。

Gemini CLI:

api_client.pyfetch_data関数は以下の通りです。

import requests

def fetch_data(url):
    response = requests.get(url)
    return response.json()

あなた:

このままだとネットワークエラーでクラッシュする可能性がある。requests.exceptions.RequestExceptionを補足するtry-exceptブロックを追加して、エラーが発生した場合はNoneを返すように修正して。

Gemini CLI:

承知しました。api_client.pyを以下のように修正します。

-    response = requests.get(url)
-    return response.json()
+    try:
+        response = requests.get(url)
+        response.raise_for_status()  # HTTPエラーの場合に例外を発生させる
+        return response.json()
+    except requests.exceptions.RequestException as e:
+        print(f"An error occurred: {e}")
+        return None

この内容でよろしいですか?

あなた:

OK、適用して。

このように、コードの意図を伝えて修正を依頼するだけで、安全なリファクタリングが可能です。

Gemini CLIが開発をどう変えるか

  • コンテキストスイッチの削減: エディタ、ターミナル、ブラウザを行き来する必要が減り、目の前のタスクに集中できます。
  • 認知負荷の軽減: 複雑なコマンドやAPIの仕様を記憶しておく必要がなくなります。「やりたいこと」を自然言語で伝えるだけで、ツールがそれを実現してくれます。
  • 初学者にも優しい: プログラミングやコマンドラインに不慣れな人でも、対話を通じて学習しながら作業を進められます。

まとめ

Gemini CLIは、AIの力を活用して開発ワークフローを根底から変える可能性を秘めた、非常にエキサイティングなツールです。まだ発展途上の部分もありますが、コーディングの未来の姿を垣間見せてくれます。

皆さんも、この新しい開発体験に触れてみてはいかがでしょうか?きっと、コーディングがもっと楽しく、創造的な活動になるはずです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?