実務でCursor Proを使ってみた
はじめに
会社でついにCursor Proが導入されました。初めて有料のAIサービスを利用した開発について振り返ろうと思います。
開発の各フェーズでAIがどのように役立ったかを具体的にまとめます。
この記事で分かること
- 実務での具体的なAI活用例
先に結論
AI活用で効果があったこと
- 未経験技術の調査とエラー解決: 実装中のコードを参照しながら原因特定と対策を提示
- コード生成: 設計書を渡すだけで1500行のコードを生成(Cursorは既存コードに合わせたスタイルで生成できる点が優秀)
- テストケース生成: 網羅的なテストケースを自動生成し、仕様不備の早期発見にもつながった
- ドキュメント生成: コードから仕様書やフローチャートを自動生成
AI活用の注意点
AIは指示通りには実装しますが、仕様の妥当性や矛盾は検出できません。
設計書に曖昧な部分があると、AIが勝手に想像で補完して実装してしまいます。
人間による仕様レビューは必須です。
開発環境と成果物
開発環境
- IDE: Cursor
- AIモデル: Claude Sonnet 4.5
- 言語: JavaScript (Node.js), SQL
開発したシステム
Gmail Webhook受信をトリガーにメール受信履歴を保存するシステム
成果物
- ソースコード(8ファイル、約1500行)
- API仕様書
- データベース仕様書
- フローチャート
これらをほぼAIのみで作成できました。
開発フェーズごとのAI活用
Gmail Webhookの実装検証
公式ドキュメントを読んで実装
初めて触る技術だったので、まず公式ドキュメントを確認をしました。
- Gmail API Push Notificationsの仕組み
- Pub/Subの署名検証方法
- サンプルコード
基本的な仕組みと実装方法を理解し、実装を開始しました。
が、公式ドキュメント通りに実装しても、いくつか問題が発生しました。
以下のようなやり取りをして解決できました。
問題1: 署名検証でエラーが発生
私: 「Gmail API Push Notificationの署名検証でエラーが発生している。
エラー: "Invalid signature"
現在の実装:
- 公式ドキュメントのサンプルコード通りに実装
- crypto.createVerifyを使用
@対象ファイル を確認して、
エラーの原因を特定し、修正案を提示してください。」
AI: 「コードを確認しました。
署名データの構築部分に問題があります。
修正箇所を提示します...」
問題2: Webhookが重複して呼ばれる
同じメールで複数回Webhookが飛んでくる問題が発生しました。
私: 「同じIDのWebhookが複数回送信されてくる。
状況:
- 1つのメール受信に対してWebhookが2-3回呼ばれる
- 処理が重複してDBに同じデータが複数回登録される
要件:
- 同じIDは1回だけ処理したい
- 同時に複数のWebhookが来る可能性がある
重複を検知して排除する仕組みを実装してください。」
AI: 「Map型で処理中のIDを記録し、
重複をスキップする実装を提案します。
実装コードを生成します...」
設計書からコード生成
マークダウンで設計書を作成
システムの要件と簡単な処理の流れをマークダウン形式で整理しました。
設計書からソースコード生成
作成した設計書をAIに渡して実装を依頼しました。
私: 「以下の設計書に基づいて実装してください。
@設計書.md
技術スタック:
- Node.js + Express
- PostgreSQL
既存のコードベースのスタイルに合わせて実装してください。
@既存コード」
AI: 「設計書を確認しました。
必要なファイルを生成します。
生成を開始します...」
とりあえず動くレベルではありますが、プロトタイプが一瞬で完成しました…!!
簡単な設計書さえ作ればプロンプト一発でソースコードを生成できるため、開発時間を大幅に短縮できました。
ChatGPT等では細かく指示する必要がありましたが、「既存のコードベースのスタイルに合わせて」と添えるだけで、コーディングルールに関する手戻りはほとんどありませんでした。
生成したソースコードのレビュー
仕様の曖昧な部分を発見
AIが生成したコードを見ていると、意図していない条件分岐や処理が見つかりました。
AIは指示通りには実装しますが、仕様の矛盾や曖昧さは検出できません。
また、AIもいちいち確認してはくれず、想像で仕様を補完して実装してしまいます。
設計書の仕様不備がないかどうかは人間が確認を行う必要があります。
テスト
テストケース&テストデータ生成
私: 「APIエンドポイントのテストケースを網羅的に生成してください。
@API仕様書.md
観点:
- 正常系(データあり/なし)
- 異常系(パラメータ不足、型エラー)
- 境界値
出力形式: Markdown表
(テストケースID、観点、入力値、期待する出力)」
AI: 「テストケースを生成しました。
| ID | 観点 | 入力値 | 期待する出力 |
|...(テストケース表)...」
私: 「テストデータをINSERTクエリで生成してください。」
AI: 「テストデータを生成しました。
INSERT INTO ...」
テストケース作成の時間を短縮できました。
また、生成したテストケースを見てから仕様不備に気付くこともありました。
生成したコード全てを読むことが理想ですが、早めにテストケースを生成しておくことで効率良く仕様の認識相違に気付くことができそうです。
ドキュメント生成
通常は先にドキュメントを作成してから実装しますが、今回は一人での開発だったため実装を先に完成させ、最後にドキュメントを作成しました。
私: 「コードからAPI仕様書を作成してください。
@実装ファイル
含める情報:
- エンドポイント、パラメータ、レスポンス形式
既存の形式に合わせてください。
@既存API仕様書.md」
AI: 「API仕様書を生成しました...」
私: 「処理フローをdraw.io形式で作成してください。
メール受信 → Webhook → サーバー処理 → クライアント → 表示
参考:
@既存フローチャート.drawio」
AI: 「フローチャートを生成しました。
修正点があれば指摘してください...」
コードから逆生成することで実装との整合性が保たれ、既存のドキュメント形式にも自動で合わせてくれるため、手作業に比べて大幅に時間を短縮できました。
特にdraw.ioのようなフローチャートは、手作業だと要素の配置調整だけでもかなり時間がかかりますが、AIなら一瞬です。
おわりに
以上、実務でCursor Proを使った開発事例でした。
Cursor Proは既存コードベースを考慮した生成ができる点が特に優れており、実務での開発効率化に大きく貢献しました。
本記事が、AI活用を検討している方の参考になれば幸いです。