👻

サクッと Gemini Code Assist 使ってみる

に公開

はじめに

最近の生成AI周りの発展は目まぐるしいものがあります。ちょっと前は Github Copilot や ChatGPT の新しいモデルを触って感動していましたが、今は「軽く触ってみるか」と思っても、追いつけなくなっています。この記事もすぐに情報が古くなってしまうかもしれません。

個人的に生成AIはツールでしかなく、それを比較することに楽しさは見出せません。
やっぱりコードを書きたい。あくまでその補助ツールとして使いたい。
さっさとウェブブラウザみたいに、どこかがデファクトスタンダードになってほしいです。

きっとそれを実現してくれるのは、やっぱりGoogleなのかなとも思っています。そうでなかったとしても、とりあえずGeminiを使っておくのが無難なのかなーと思っています。

そんな感じでたどり着いたのが Gemini Code Assist でした。実質無料で使えてコードレビューまでしてくれます。しかも設定はかなり簡単です。

他を色々と触ったわけではないですが、困ったらとりあえずGeminiは選択肢としてアリなのかなと思っています。

対象読者

  • コーディングの補助ツールとして生成AIのコーディングツール使いたい
  • 課金したくない
  • 色々調べたり比較したり設定するの面倒

Gemini Code Assist

公式ブログ にざっくりとまとまっていました。

要点を抜き出すと、

  • パブリックドメインすべてのプログラミング言語をサポート
  • コード生成やコード補完などのリクエストに対して、1日あたり 6,000件(1か月あたり180,000 件)の上限
  • Visual Studio Code や JetBrains IDE でも提供されるため、個人の開発者も、これまでエンタープライズ向けに提供してきたコード補完、生成、チャット機能を利用できる
  • チャットにおける最大 128,000 トークンの入力に対応
  • Gemini Code Assist for GitHub は、スタイル上の問題やバグを検出し、自動的にコード変更や修正を提案します
  • 個人用 Gmailアカウント があれば登録でき、クレジットカードは不要です。Visual Studio Code、GitHub、または JetBrains IDE に Gemini Code Assist をインストールして、すぐに利用を開始できます

docsはこちら

VSCode に設定する

  1. VSCode の拡張機能でGemini Code Assistをインストール

  1. 左のタブのところにGeminiのアイコンが追加されるのでそれをクリックして、Google アカウントでログイン

  1. 成功すると成功画面が出るのでこれで完了

これでコード補完が効くようになっているはずです。
他にもGeminiアイコンのところからチャットができ、リファクタなりコード生成なり指示すればしてくれます。

チャットでコード生成してもらっているところ

開いているファイル以外のコードも参照してくれたりします。少し時間はかかりますが、わざわざドキュメント見に行くほどでもないときや、簡単なデバッグに便利です。

コードレビューをしてもらう

  1. GitHubアプリのGemini Code Assistでインストールする

  1. どのリポジトリにアクセスさせるかを選べます

  1. 進めて同意を済ますとDoneの画面になるのでこれで完了です。

これでPull requestsとかしてみるとSummaryやCode Reviewをしてくれるようになります。簡単ですね。
個人開発では思想が入りすぎたり、簡単なミスもつい見逃してしまったりしがちなのでレビューしてもらえると心理的安全性が高まります。

レビューしてもらっているところ

Summary of Changes

Summary of Changes

Code Review

Code Review

そして、Gemini Code Assistのコードレビューの動作はカスタマイズできるらしいです。
デフォルトでは以下の観点でレビューをしてくれているらしい。

正確性: コードが意図したとおりに機能し、エッジケースを処理し、論理エラー、競合状態、API の誤った使用をチェックします。
効率性: パフォーマンスのボトルネックや最適化の対象となる領域(ループの過剰、メモリリーク、非効率なデータ構造、冗長な計算、過剰なロギング、非効率な文字列操作など)を特定します。
保守性: コードの読みやすさ、モジュール性、言語の慣用句とベスト プラクティスへの準拠性を評価します。変数、関数、クラスの不適切な命名、コメントやドキュメントの欠如、複雑なコード、コードの重複、不整合な形式、マジックナンバーを対象としています。
セキュリティ: 機密データの安全でない保存、インジェクション攻撃、アクセス制御の不備、クロスサイト リクエスト フォージェリ(CSRF)、安全でない直接オブジェクト参照(IDOR)など、データ処理や入力検証の潜在的な脆弱性を特定します。
その他: プルリクエストの審査では、テスト、パフォーマンス、スケーラビリティ、モジュール性と再利用性、エラー ロギングとモニタリングなど、その他のトピックも考慮されます。

そしてこれをカスタマイズするには .gemini/styleguide.md を設定するとできます。
例えば「日本語でレビューしてください。」と書くと↓の感じで日本語でレビューをしてくれるようになりました。

サンプルコードを見ても分かる通り、スタイルガイドなのでフォーマットなんかを指定する感じだと思いますが、かなり柔軟に対応してくれそうですね。

https://developers.google.com/gemini-code-assist/docs/customize-gemini-behavior-github?hl=ja

まとめ

  • Gemini Code Assist は、無料・簡単・高性能な生成AIツールとしてかなり有望だと思います。
  • VSCodeやGitHubと連携することで、日々の開発やレビューが圧倒的に楽になりました。
  • 特に「設定が面倒」「課金したくない」人には最適解だといえます。
  • 今後も進化し続ける領域なので、気軽に試してみる価値は十分にありそうです。

参考

Discussion