第1部:AI駆動開発の深化 Step 1 / 36

大規模プロジェクトでのAI活用

ファイル数が数十〜数百になる大規模プロジェクトでも、AIを効果的に活用できます。鍵は「コンテキスト管理」と「適切な情報提供」です。

大規模プロジェクトでAIを使う際の課題

よくある問題

  • AIがプロジェクト全体を把握できない
  • 関連ファイルを見落として不整合が発生
  • 既存のコーディング規約を無視した提案
  • コンテキストが長すぎて処理が遅い

解決のアプローチ

  • 必要な情報を選択的に提供する
  • プロジェクト構造を先に説明する
  • 規約やパターンを明示する
  • タスクを小さく分割する

効果的なコンテキスト管理

1. プロジェクト構造を最初に共有する

AIへの指示例

このプロジェクトの構造を説明します:

project/
├── frontend/          # Next.js アプリ
│   ├── src/
│   │   ├── components/  # 共通コンポーネント
│   │   ├── features/    # 機能別モジュール
│   │   ├── hooks/       # カスタムフック
│   │   └── lib/         # ユーティリティ
│   └── ...
├── backend/           # FastAPI アプリ
│   ├── app/
│   │   ├── api/        # エンドポイント
│   │   ├── models/     # DBモデル
│   │   ├── schemas/    # Pydanticスキーマ
│   │   └── services/   # ビジネスロジック
│   └── ...
└── docker-compose.yml

今から frontend/src/features/tasks/ にタスク管理機能を追加します。

2. 関連ファイルを明示的に伝える

AIへの指示例

タスク機能を実装します。以下のファイルが関連します:

【参照すべきファイル】
- backend/app/models/user.py(既存のUserモデル)
- backend/app/api/auth.py(認証の実装パターン)
- frontend/src/features/auth/(既存機能の構造参考)

【新規作成するファイル】
- backend/app/models/task.py
- backend/app/api/tasks.py
- frontend/src/features/tasks/

既存のパターンに合わせて実装してください。

3. 規約・パターンを明示する

AIへの指示例

このプロジェクトのコーディング規約:

【バックエンド(Python/FastAPI)】
- 型ヒントを必ず使用
- Pydanticスキーマで入出力を定義
- サービス層にビジネスロジックを分離
- 例外は HTTPException で統一

【フロントエンド(TypeScript/Next.js)】
- コンポーネントは関数コンポーネント + TypeScript
- 状態管理は useState + useReducer(Reduxは使わない)
- APIコールは features/*/api.ts に集約
- スタイルは Tailwind CSS

この規約に従ってコードを書いてください。

Claude Code / Cursor での実践

Claude Code の場合

Claude Code は自動的にプロジェクト構造を把握しますが、明示的に指示することで精度が上がります。

# プロジェクトのルートで実行
claude

# 最初に構造を確認させる
> このプロジェクトの構造を確認して、主要なファイルを教えて

# 特定のディレクトリに集中させる
> backend/app/api/ 以下のファイルを見て、エンドポイントの実装パターンを把握して

Tips: @ファイル名 でファイルを明示的に参照できます。@backend/app/models/user.py のように指定すると、そのファイルを確実にコンテキストに含められます。

Cursor の場合

Cursor では .cursorrules ファイルでプロジェクト固有の設定を定義できます。

# .cursorrules
You are working on a full-stack web application.

## Project Structure
- Frontend: Next.js 14 with App Router (frontend/)
- Backend: FastAPI with SQLAlchemy (backend/)
- Database: MySQL

## Coding Standards
- Use TypeScript strict mode
- All API responses follow { data, error, message } format
- Use Pydantic for validation
- Follow existing patterns in the codebase

## Important Files
- backend/app/core/config.py - Configuration
- frontend/src/lib/api.ts - API client

Tips: Cmd+K(Ctrl+K)で編集、Cmd+L(Ctrl+L)でチャット。@codebase でプロジェクト全体を検索対象にできます。

段階的な実装アプローチ

大きな機能を一度に実装しようとすると、AIの出力が不安定になります。段階的に進めましょう。

1

Step 1: 設計を確認

「この機能を実装するのに、どのファイルを作成・修正する必要がありますか?」

2

Step 2: モデル/スキーマから

「まずデータベースモデルとPydanticスキーマを作成してください」

3

Step 3: API実装

「モデルができたので、CRUDのAPIエンドポイントを作成してください」

4

Step 4: フロントエンド

「APIができたので、フロントエンドのコンポーネントを作成してください」

5

Step 5: 動作確認と修正

「エラーが出ました:[エラー内容]。修正してください」

実践例:タスク管理機能の追加

完全な指示例

【背景】
既存のプロジェクト管理アプリにタスク機能を追加します。

【プロジェクト構造】
- backend/app/models/user.py に User モデルあり
- backend/app/api/auth.py に認証済みユーザー取得の依存関係あり
- frontend/src/features/projects/ が既存機能の参考

【要件】
- タスクには title, description, status, due_date, assigned_to がある
- status は todo, in_progress, done の3種類
- タスクはプロジェクトに紐づく(project_id)
- 認証済みユーザーのみ操作可能

【お願い】
1. まず必要なファイル一覧を提示してください
2. 承認後、backend から順に実装してください
3. 既存の auth.py, projects.py のパターンに従ってください

まとめ

  • 構造を最初に共有 - プロジェクトの全体像をAIに伝える
  • 関連ファイルを明示 - 参照すべきファイル、新規作成するファイルを列挙
  • 規約を伝える - コーディングスタイル、使用パターンを明示
  • 段階的に進める - 一度に全部ではなく、ステップごとに実装
  • ツールの機能を活用 - @ファイル参照、.cursorrules などを活用
トップページ 次へ:AIエージェントの活用