SlideShare a Scribd company logo
株式会社Builto とみたかずき
CursorでAIコーディング入門
自己紹介
• 冨田 一喜(とみたかずき)
• 株式会社Builto / CEO・CTO
• LLMを活用した受託開発・自社サービス開発
• ソフトウェアエンジニア歴 7年
• Rails3年 → React / TypeScript 4年
• 実装もしながらいろいろやっています
Cursor、使ってますか?
今日話すこと・ターゲット
• AIエディタCursorの基本的な使い方・考え方
• ターゲットは、「なんとなくCursorやCopilotを使っている歴3年以上のソフ
トウェアエンジニア」
• Cursorで、「コーディング時間」は1/3~1/5にできます
登壇のきっかけ
この記事の内容で話したかったが…
• 2/17に記事公開
• →2月後半に出た「Agent」「Cursor Rules」、また「Claude 3.7 Sonnet」
がかなり強力!
• 1ヶ月で陳腐化。。。
• 今日の内容
• 「Agent」と「Edit(旧 Composer)」の使い分け
• AIコーディングの本質と「Edit」での最速実装法
Cursorの3つのモード
Ask・Edit・Agent
Cursorの3つのモード
Ask・Edit・Agent
Ask
Edit
(旧 Composer)
Agent
機能 ・対話のみ
・対話
・ファイル変更
・対話
・ファイル変更
(より自動的)
適した用途
・質問
・相談
・ファイル実装 ・ファイル実装
自動
手動
Agentモードの凄さ
• 何ができる?
• 自動的なファイル検索・参照
• 実装計画を立て、順番に実行
• エラーを自動検知し、解消するまで修正
Agent と Edit の比較
Agent Edit
メリット
・指示が楽
・エラーをゼロにできる
・早い
・正確
デメリット
・遅い
・必要以上の指示を行うことが
ある
・正確な指示が必要
・エラーが残ることがある
Agent は未来の開発の形
• マルチタスクには最適
• 指示を出して、一旦待つ。数分後に戻ってきて確認
• 間違いなくこの方向で進化する
エンジニアにはまだ Edit が最適では?
• 経験のあるエンジニアは、正確な指示ができる
• 詳細な要件
• 参考にするファイル
• 進め方のヒント
• Agentのつらさ
• 「待ち時間」が辛い(テンポが悪い)
• 最後まで完了しないことがある
• 精度もまだ完璧とは言えない
AIコーディングの2つの前提
• 1. 参考ファイルを常にプロンプトに含める必要がある
• 2. 一度の指示で正確に実装できるコード量には限界がある
1. 参考ファイルを常に含める必要がある
• AIも人間と同じで、既存コードを参考にすれば正確に実装できる
• 記法、命名規則、ディレクトリ構成・アーキテクチャ、ドメインモデリング
など
• これらは明示的にエンジニアからAIに渡す必要がある
2. 一度の指示で正確に実装できるコード量
• 巷の「Claudeに指示したらこんなに作ってくれました‼」は嘘
• 実際の開発現場では
• 詳細な機能要件・非機能要件がある
• 詳細なコーディング規約が存在する
• 規約を厳守しつつ複雑な仕様を満たし、負債が貯まらないような開発をする必要が
ある
• 最新のClaude 3.7 Sonnetでも、詳細な指示を守れるコード量は400行程度
2つの前提を踏まえた解決策
• 1. 参考ファイルを常にプロンプトに含める必要がある
• → 事前設定 と Cursor Rules を活用しよう
• → 関連するファイルはなるべく多く含めよう
• 2. 一度の指示で正確に実装できるコード量には限界がある
• → 指示が多いときはステップに分割しよう
2つの前提を踏まえた解決策
• 1. 参考ファイルを常にプロンプトに含める必要がある
• → 事前設定 と Cursor Rules を活用しよう
• → 関連するファイルはなるべく多く含めよう
• 2. 一度の指示で正確に実装できるコード量には限界がある
• → 指示が多いときはステップに分割しよう
事前設定と Cursor Rules を活用しよう
〜モデル選択〜
• Cursor 3.7 Sonnet
• 3.5が後続進化したモデル
• 精度と速度のバランスが最強
事前設定と Cursor Rules を活用しよう
〜Cursor Rules〜
• Cursor Rulesは、プロジェクトごとに共通で扱えるシステムプロンプト
• Git管理が可能→ チームで共有できる!
• ファイル参照ができる → 毎回参考ファイルを提供できる!
• 発動条件を制御できる → 適切なタイミングで適用できる!
【現役エンジニア向け】Cursorで効率的なAIコーディングのススメ...
Cursor Rulesの内容
• このアプリケーションの概要
• 主な技術スタック
• 実装時の注意点
• 何度も指摘した事項
• コメントを多めに入れること
• ディレクトリ構成と参考ファイル
前提を踏まえた解決策
• 1. 参考ファイルを常にプロンプトに含める必要がある
• → 事前設定 と Cursor Rules を活用しよう
• → 関連するファイルはなるべく多く含めよう
• 2. 一度の指示で正確に実装できるコード量には限界がある
• → 指示が多いときはステップに分割しよう
関連するファイルはなるべく多く含めよう
• Cursor Rulesで基本的なコーディング規約は守れるようになる
• しかし、今回の機能開発における参考ファイルは、別に渡すほうがよい
• 似たような機能を実装したファイル
• 変更の必要があるファイル
関連するファイルはなるべく多く含めよう
• 今のAIモデルの精度では、6~10個くらいファイルを渡しても精度的には全く
問題ない
• これはAgentモードでも同じ。渡したほうが早くて正確
前提を踏まえた解決策
• 1. 参考ファイルを常にプロンプトに含める必要がある
• → 事前設定 と Cursor Rules を活用しよう
• → 関連するファイルはなるべく多く含めよう
• 2. 一度の指示で正確に実装できるコード量には限界がある
• → 指示が多いときはステップに分割しよう
指示が多いときはステップに分割しよう
• AIが一度のプロンプトで正確に実装できるコード量は、400行程度
• Webアプリにおける新機能はそれ以上のコード量になる
• 例) 複雑なバックエンドAPIなら、1000行は超える
• → ステップに分割して、一度の実装量を400行以内に抑える
ステップ分割の仕方
• エンジニアが普段行うステップに分けるのがわかりやすい
• バックエンド開発を例に取ると
• 1. DBスキーマの変更
• 2. Entity, ValueObjectの実装
• 3. UseCaseの実装
• 4. Handlerの実装
• これをステップとして定義し、順々に行うよう指示する
ステップ分割の仕方
修正が多くなったときのTips
• CursorだけでなくChatGPT等のすべてのAIチャットでは、
チャットの回数が多くなる(目安10ラリー以上)と、当初の指示内容を忘れ
てしまい精度が落ちる
• ステップごとにチャットを新しくし、ここまでの差分を渡すのが効果的
差分の伝え方
• 以下の流れ
• ステップの実装完了時に、Gitをcommitする(タイトルは実装内容にす
る)
• 新しいチャットを作成し、@git でコミットのdi
ff
をコンテキストとして渡
す
@git でdi
ff
をコンテキストに注入できる
まとめ: AIコーディングを早く正確に進めるには
• 1. 参考ファイルを常にプロンプトに含める必要がある
• → 事前設定 と Cursor Rules を活用しよう
• → 関連するファイルはなるべく多く含めよう
• 2. 一度の指示で正確に実装できるコード量には限界がある
• → 指示が多いときはステップに分割しよう
Appendix
• とにかく使うことが大事(AIにすべて実装させること)
• 使うことでプロンプティングと指示のコツが掴めてくる
• すべてをコードに残していくとさらに効率が上がる
• IaC(Infrastructure as Code)
• 例えばAWS SDKを使えば、AWSのインフラ構成についてもAIに相談できる
• AIに思考過程や実装の振り返りを出力させ保存する
• ClineやWindsurfはそれができるらしい?
さいごに
• 弊社ではチームの生産性を上げるAIエージェントを作っています
• 以下のようなキーワードにピンと来るエンジニアの方、ご連絡ください!
• OpenAI Agents SDK
• Vercel AI SDK
• mastra

More Related Content

PDF
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
PDF
Google Home, Amazon Echo, LINE Clova クロス開発& Azure Durable Funcitons で時間のかかる処理...
PDF
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
PDF
Blazor Server テンプレート解説
PDF
Micronaut on Azure 試してみた
ODP
怠惰な私がプログラミングするときに重要だと考えているたった1つのこと
PDF
Objective-Cプログラマのためのswift導入法
PDF
connpass特徴と開発の流れ
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
Google Home, Amazon Echo, LINE Clova クロス開発& Azure Durable Funcitons で時間のかかる処理...
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Blazor Server テンプレート解説
Micronaut on Azure 試してみた
怠惰な私がプログラミングするときに重要だと考えているたった1つのこと
Objective-Cプログラマのためのswift導入法
connpass特徴と開発の流れ

Similar to 【現役エンジニア向け】Cursorで効率的なAIコーディングのススメ... (20)

PDF
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
PPTX
Uno Platform か Blazor
PDF
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
PDF
ゼロからのプログラミングRails講座 Codeanywhere版
PPTX
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
PDF
普段使用しているAIサービスとGitHub Copilot のベターな使い方について
PDF
チケット管理システム大決戦第二弾
PPTX
[141004] cedec 2014 참관기 & 강연 리뷰 #1
PDF
論理思考とプログラミング 2013f#10
PPTX
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
PDF
小規模チームで Type script と向き合う話
PPTX
ノンプログラミングで楽したい
PPTX
20191219 byd lt#4_teraoka
PDF
新・ReVIEWパーサについて
PPTX
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
PDF
The Fastest Possible Way to Develop an Interactive App
PDF
LINE Bot 開発のための Azure Logic Apps 入門
PPTX
Visual Studio Code で C# でのアプリ開発
PPTX
APIドキュメントの話 #sphinxjp
PDF
初めてのWebプログラミング講座
2013年08月 夏サミ2013-A5「DevOpsってどうなのよ?」
Uno Platform か Blazor
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
ゼロからのプログラミングRails講座 Codeanywhere版
git初心者からgit-flowを使えるレベルになって、リリースとレビューを効率化しよう
普段使用しているAIサービスとGitHub Copilot のベターな使い方について
チケット管理システム大決戦第二弾
[141004] cedec 2014 참관기 & 강연 리뷰 #1
論理思考とプログラミング 2013f#10
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
小規模チームで Type script と向き合う話
ノンプログラミングで楽したい
20191219 byd lt#4_teraoka
新・ReVIEWパーサについて
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
The Fastest Possible Way to Develop an Interactive App
LINE Bot 開発のための Azure Logic Apps 入門
Visual Studio Code で C# でのアプリ開発
APIドキュメントの話 #sphinxjp
初めてのWebプログラミング講座
Ad

【現役エンジニア向け】Cursorで効率的なAIコーディングのススメ...