Skip to content

AIコーディングワークフロー進化:Copilot から Cursor へ

上半期に Copilot 半年使用レポートを書きました。下半期の変化はさらに大きく——Cursor が登場し、AIコーディングは「補完ツール」から「コーディングパートナー」へと進化しました。

Copilot vs Cursor

Copilot はコード補完ツールで、Cursor は AI ネイティブなエディタです。両者のポジショニングは根本的に異なります:

Copilot:  在你写代码时给你建议,你来决定接不接受
Cursor:   整个编辑器围绕 AI 设计,你描述意图,AI 来改代码

Cursor のコア機能

Cmd+K:自然语言编辑

コードを選択して Cmd+K を押し、指示を入力します:

把这段逻辑提取成一个 custom hook,
返回 { data, loading, error, refetch }

Cursor はコードを直接変更します。提案を出すだけではありません。プロジェクトのコンテキストを参照できるため、生成されたコードはプロジェクト内の既存の型やユーティリティ関数を参照します。

Cmd+L:对话模式

ChatGPT に似ていますが、プロジェクト全体を認識できます:

Q: 这个组件的性能问题在哪?
A: PostList 组件每次渲染都创建新的 filter 函数,
   建议用 useMemo 包裹。另外 db.post.findMany
   缺少分页参数,大数据量时会全量加载。

   [Generate fix]

「Generate fix」をクリックして変更を直接適用します。

Codebase 索引

Cursor はプロジェクト全体のコードをインデックス化します。「このプロジェクトではエラーをどう処理しているか」と聞けば、グローバルなエラー処理パターンを検索してまとめることができます。

実際の使用体験

適切なユースケース

コードのリファクタリング(最も効率的)

选中 200 行旧组件 → Cmd+K
"重构成函数组件,用 TypeScript,添加类型定义"

10 秒后得到重构后的代码,类型定义完整。
手动调整几个细节就完成了。

反復的なコードの生成

"根据 UserSchema 生成对应的 API CRUD handler"
"根据这个 mock 数据生成对应的测试用例"

見慣れないコードの理解

选中一段没看过的库代码 → Cmd+L
"这段代码在做什么?为什么这样写?"

不适合的场景

複雑なビジネスロジック

AI はビジネスの背景を理解しないため、生成されたロジックは合理的に見えても実際には問題がある場合があります。

アーキテクチャの判断

「このプロジェクトは monorepo にすべきか polyrepo にすべきか」のような問いに、AI はうまく答えられません。

精密な制御が必要なコード

セキュリティ関連のコードやパフォーマンスクリティカルパスなど、AI が生成したコードにはより徹底したレビューが必要です。

Copilot との組み合わせ使用

私の実際のワークフロー:

1. Copilot 负责日常代码补全(Tab 键接受)
2. Cursor Cmd+K 做有方向的代码修改
3. Cursor Cmd+L 做代码理解、调试辅助
4. 重要代码仍然手动审查每一行

両者は競合せず、Copilot の補完 + Cursor のディープ編集が現時点での最適な組み合わせです。

チームへの提言

  • AI ツールを禁止するのではなく、正しい使い方に誘導する
  • 「生成コードをレビューする」意識をチームに教えることが「AI の使い方を知っているか」より重要
  • 機密コード(キー、コアアルゴリズム)は AI ツールに入力しない
  • AI ツールの ROI を評価する:コーディング速度30-50%向上は本当だが、学習と適応にコストがかかる
  • Cursor / Copilot の競争構造に注目する;この分野の変化は非常に速い

まとめ

  • Cursor は AI を「コード補完」から「コーディングパートナー」レベルに引き上げた
  • Cmd+K 自然言語編集、Cmd+L プロジェクト認識対話がコア機能
  • リファクタリング、反復コード生成、見慣れないコードの理解が最適なユースケース
  • 複雑なビジネスロジックとアーキテクチャの判断は依然として人間が行う必要がある
  • Copilot + Cursor の組み合わせ使用が現時点での最適なワークフロー

MIT Licensed