この記事について(導入)
-
この記事の目的
AIエディタを使用していない自分が便利だと感じたツールを紹介します。こちらの記事は超絶効率化みたいな話ではなく、AIによる効率化をあまりしてこなかったヘボヘボエンジニアがAIエディタを使用して感嘆する記事になります。 -
対象読者
- あまりAIエディタを使用していない方
- ドキュメントが不足しているプロジェクトに新規参画される方
-
この記事で紹介するツール
- CURSOR
- POSTGRES MCP
ツール1:CURSOR
そもそもCURSORってなに?
CURSORは、AIを活用した最新のコードエディタです。GitHub CopilotのようなAIコーディング支援機能に加え、自然言語でコードのリファクタや説明・生成などの指示ができることが特徴です。また、VSCode互換のUIで直感的に利用でき、多数のプラグインもサポートしています。コード補完だけでなく、AIチャットによる質問や、コードベース全体を理解した上での検索・編集も行えるため、開発効率を大きく向上できます。(CURSOR自身に聞きました)
使用感
過去のプロジェクトでは、GeminiやChatGPTといったチャットベースのLLMを使用していました。今回のプロジェクトでCursorを初めて使ったとき、その便利さに衝撃を受けました。
個人的なCursorの最大の魅力はコードベース全体を自動的に読み取り、解釈して提案してくれる点です。従来のチャット型LLMのように、自分でコードをコピペして提供する必要がなく、エディタ上で直接質問できるため、作業が格段に楽になりました。ZennやQiitaでAIエディタ関連の記事が増えている理由がよく分かります。
実際にCursorを使用して、特に高い恩恵を感じたタスクは以下の通りです。
1. コードレビュー
たくさんのPRをレビューする必要があり、時間が足りない状況でした。可能な限り短時間で正確に内容を確認したいと考えていたとき、Cursorに以下のような観点で説明を求めています:
- 実装内容の説明
- コードロジックの解説
- セキュリティ的な観点での指摘
Cursorからの説明を受け取り、自分はチケット内容との照合に集中することで、レビュー時間を大幅に短縮できています。
2. コード検索
自然言語を用いて具体性に欠ける言い回しでソースコード全体に対して検索を行うことで、特定のコード・機能を素早く見つけることができます。
これは非常に便利で、例えば「ユーザー認証のコードを教えて」といった質問で、コード自体の内容からコードの検索を行うことなく、特定のコードを素早く見つけることができます。さらに共通化された関数なども自動でサジェストしてくれるため、不要なコードの実装を防ぎ、コードの品質を向上させることができます。これによって「そんな便利な関数あったんだ〜」っていう失敗を減らすことができます。
ツール2:POSTGRES MCP
POSTGRES MCPってなに?
@modelcontextprotocol/server-postgresは、PostgreSQLデータベースへの読み取り専用アクセスを提供するMCPサーバーです。これを使うことで、AIがデータベースのスキーマを確認したり、読み取り専用のクエリを実行できるようになります。
主な機能:
- 読み取り専用クエリの実行: データベースに対して読み取り専用のクエリを実行できます。あくまで読み取り専用なので、誤ってデータを変更したり削除したりする心配がありません。
- スキーマ情報の提供: テーブルのカラム名やデータ型などの情報をJSON形式で取得できます。わざわざ自分でDDLを探して貼り付ける必要がなく、自動的に取得してくれるのが便利です。
使用感
新規にプロジェクトに参加した際、データベースのテーブル構成が分からない状態でデータベース操作を行う必要がありました。POSTGRES MCPを使うことで、テーブル構成を自然言語で検索し、エージェントが必要な分のER図を作成し、それを確認しながら操作できるようになるので初期把握のコストを削減することができます。
例えば、実装した画面内容から「必要なデータがどこのテーブルのカラムにあるか」を曖昧な言い回しで検索できます。さらに、自然言語でテーブル間のリレーションも教えてくれます。
以前はdbeaverなどのデータベースクライアントを使って、ER図から構成を想像しながら調べる必要がありましたが、POSTGRES MCPを使うことでデータベース情報を容易に知ることができます。さらに、テストデータの作成までしてくれるので、作業が大分楽になりました。
感想
まだCURSORとPOSTGRES MCPを使い始めたばかりですが、予想以上に便利だと感じています。
claudeやgeminiなどの進化もしており、開発体験は今までのコーディングとはまったく違うものになりました。
cursorによってchatGPTなどのチャットベースで実装していくのと比べ、主導権が自分からAIに移ったような感覚を覚えます。
その反面、cursorに振り回されることも多く、AIに対しての命令や設計の指示をしっかりと行う必要があります。
今後もAIエディタを使いながら、より効率化していきたいと思います。