導入: 2025 年の GitHub Copilot
GitHub コパイロット コードの書き方に革命をもたらしました。しかし、2025年には、 それはもはや単なるインテリジェントなオートコンプリートではなく、本物のものになりました 開発パートナー 複雑なコンテキストを理解し、アーキテクチャを生成し、テストを作成し、ドキュメントを作成できる さらには設計上の決定にも役立ちます。
この 9 回の記事シリーズでは、Copilot を使用してプロジェクトを構築する方法を説明します。 個人的な エンドツーエンド、コンセプトから導入、アーキテクチャを通じて、 テストとメンテナンス。コードを速く書くだけではなく、 違う考え方をする ソフトウェア開発まで。
📚 このシリーズで学ぶこと
- Copilot を単なる戦術的なパートナーとしてではなく、戦略的なパートナーとして使用する
- 予測可能な結果を得るために効果的なプロンプトを構成する
- 永続コンテキスト用の MCP エージェントを作成する
- AI 支援によるスケーラブルなアーキテクチャの設計
- DevOps テスト、ドキュメント、構成を生成する
GitHub コパイロットの進化
Copilot を最大限に活用する方法を理解するには、Copilot がどのように進化したかを理解することが役立ちます。
📅 副操縦士のタイムライン
| Anno | マイルストーン | インパクト |
|---|---|---|
| 2021年 | テクニカルプレビューの開始 | VS Code の AI を活用したオートコンプリート |
| 2022年 | 一般提供 | マルチIDE対応、品質向上 |
| 2023年 | 副操縦士のチャット | コード内での会話のやりとり |
| 2024年 | コパイロットワークスペース | 完全な機能設計 |
| 2025年 | MCPエージェント | 永続的なコンテキストと特殊な役割 |
現在、Copilot は次のコード行を提案するだけではありません。できる:
- 構成ファイルを通じてプロジェクトのコンテキスト全体を理解する
- 以前の会話の記憶を保持する
- 専門的な役割(アーキテクト、テスター、ドキュメンター)を引き受ける
- 外部ドキュメントからの知識を統合する
- 複雑な複数ステップのタスクで共同作業する
正しい考え方: 技術共同創設者としての AI
最初の最も重要な変更は、 精神的な。多くの開発者 彼らは Copilot を美化されたオートコンプリートのように扱い、その可能性の 90% を失っています。
❌ 間違ったアプローチ
- 受動的に提案を待つ
- レビューせずに最初の結果を受け入れる
- 定型コードにのみ使用してください
- コンテキストを提供しない
- 彼の会話スキルを無視する
✅ 正しいアプローチ
- 構造化されたプロンプトによる積極的なガイド
- 結果を反復して改良する
- 設計、アーキテクチャ、テストに使用します
- 豊富で具体的なコンテキストを提供する
- 彼を監督するジュニア開発者のように扱う
⚠️黄金律
コパイロットは増幅器であり、代替品ではありません。 スキルを強化する 何を質問すればよいかはわかっていても、基本的な知識の欠如を補うことはできません。 上級開発者は何を求めるべきかを知っているため、若手開発者よりも 10 倍良い結果が得られます。 そして答えを評価する方法。
リポジトリのセットアップ: 財団
コードを記述する前に、Copilot の効果を最大化する環境を作成する必要があります。 これは、Copilot が実行できるようにリポジトリを構造化することを意味します。 理解する コンテキスト あなたのプロジェクトの。
1. README.md 構造化
README は、Copilot がプロジェクトを理解するために最初に「読み取る」ファイルです。 README ウェル 構造化することで提案の質が大幅に向上します。
# Nome Progetto
## Descrizione
[2-3 frasi che spiegano COSA fa il progetto e PERCHÉ esiste]
## Stack Tecnologico
- **Backend:** Node.js 20 + Express 5 + TypeScript 5.3
- **Frontend:** Angular 17 + Tailwind CSS
- **Database:** PostgreSQL 16 + Prisma ORM
- **Testing:** Jest + Supertest + Playwright
- **Deploy:** Docker + GitHub Actions + AWS ECS
## Architettura
Il progetto segue una Clean Architecture con:
- Presentation Layer (Controllers, DTOs)
- Business Layer (Services, Use Cases)
- Data Access Layer (Repositories, Entities)
## Convenzioni di Codice
- **Naming:** camelCase per variabili, PascalCase per classi/interfacce
- **File:** kebab-case (user-profile.component.ts)
- **Commit:** Conventional Commits (feat:, fix:, docs:, etc.)
- **Branch:** feature/*, bugfix/*, hotfix/*
## Struttura Cartelle
```
src/
├── modules/ # Feature modules
├── shared/ # Codice condiviso
├── config/ # Configurazioni
└── database/ # Migrations e seeds
```
## Comandi Principali
```bash
npm run dev # Development server
npm run build # Production build
npm run test # Run tests
npm run lint # Linting
```
2. 副操縦士指示ファイル
GitHub Copilot はルールを定義するカスタム命令ファイルをサポートします あなたのプロジェクトに特有のものです。これらのファイルは自動的に読み取られます。
# Copilot Instructions for [Project Name]
## Linguaggio e Stile
- Scrivi SEMPRE in TypeScript con strict mode abilitato
- Usa async/await invece di Promise.then()
- Preferisci functional programming quando appropriato
- Evita `any` - usa tipi specifici o generics
## Formattazione
- Massimo 100 caratteri per riga
- Indentazione: 2 spazi
- Punto e virgola obbligatorio
- Single quotes per stringhe
## Architettura
- Controllers: solo routing e validazione input
- Services: tutta la business logic
- Repositories: solo accesso dati, niente logica
- DTOs: validazione con class-validator
## Error Handling
- Usa custom error classes (ValidationError, NotFoundError, etc.)
- Mai esporre stack traces in produzione
- Log strutturati con correlationId
## Testing
- Ogni service deve avere unit tests
- Coverage minimo: 80%
- Mock tutte le dipendenze esterne
## Sicurezza
- Valida SEMPRE gli input
- Sanitizza output per prevenire XSS
- Usa parametrized queries (mai string concatenation)
- Non loggare dati sensibili (password, tokens)
3. 一貫したフォルダー構造
予測可能な構造は、Copilot がプロジェクトの他の部分と一貫性のあるコードを生成するのに役立ちます。
backend/
├── src/
│ ├── config/ # Configurazioni centralizzate
│ │ ├── database.config.ts
│ │ ├── auth.config.ts
│ │ ├── cache.config.ts
│ │ └── index.ts # Export centralizzato
│ │
│ ├── modules/ # Feature modules (DDD-style)
│ │ ├── users/
│ │ │ ├── controllers/
│ │ │ │ └── users.controller.ts
│ │ │ ├── services/
│ │ │ │ └── users.service.ts
│ │ │ ├── repositories/
│ │ │ │ └── users.repository.ts
│ │ │ ├── dto/
│ │ │ │ ├── create-user.dto.ts
│ │ │ │ ├── update-user.dto.ts
│ │ │ │ └── user-response.dto.ts
│ │ │ ├── entities/
│ │ │ │ └── user.entity.ts
│ │ │ ├── __tests__/
│ │ │ │ ├── users.service.spec.ts
│ │ │ │ └── users.controller.spec.ts
│ │ │ └── users.module.ts
│ │ │
│ │ ├── auth/
│ │ └── projects/
│ │
│ ├── shared/ # Codice condiviso tra moduli
│ │ ├── decorators/
│ │ ├── guards/
│ │ ├── interceptors/
│ │ ├── filters/
│ │ ├── pipes/
│ │ └── utils/
│ │
│ ├── database/
│ │ ├── migrations/
│ │ ├── seeds/
│ │ └── prisma.service.ts
│ │
│ ├── app.module.ts
│ └── main.ts
│
├── test/ # E2E tests
├── .env.example
├── tsconfig.json
└── package.json
最初のプロンプト: プロジェクトのキックオフ
新しいプロジェクトを開始すると、最初のプロンプトで Copilot にすべてが表示されるはずです 効果的に役立つために必要なコンテキスト。
You are helping me build a personal project from scratch.
## PROJECT OVERVIEW
- **Name:** TaskFlow
- **Type:** Task management web application
- **Goal:** Help freelancers track time, manage tasks, and generate invoices
## TECHNICAL STACK
- Backend: Node.js + Express + TypeScript + PostgreSQL + Prisma
- Frontend: Angular 17 + Tailwind CSS
- Auth: JWT with refresh tokens
- Deploy: Docker + AWS
## TARGET USERS
Solo freelancers and small teams (1-5 people)
## MVP SCOPE
Phase 1 features only:
1. User authentication (email/password)
2. Project CRUD
3. Task CRUD with time tracking
4. Basic dashboard with weekly summary
## CONSTRAINTS
- Solo developer, limited time
- Must be production-ready, not just a prototype
- Security and performance are priorities
## WHAT I NEED FROM YOU
1. Validate this scope - is it realistic for MVP?
2. Suggest the folder structure
3. Identify potential technical challenges
4. Recommend the development order (what to build first)
Be concise but thorough. Ask clarifying questions if needed.
AI 主導の開発ワークフロー
構造化されたワークフローにより、開発のあらゆる段階で Copilot の効率が最大化されます。
🔄 Copilot を使用した開発サイクル
- プラン(5分): 何を構築するかを定義し、明確なプロンプトを作成します
- 質問する (2 分): コードを記述する前に Copilot を使用してアプローチを設計する
- 生成 (10 分): Copilot に基本的なコードを生成させます
- 絞り込み (10 分): 改善するために特定のフィードバックを繰り返します
- 検証 (5 分): 生成されたコードの手動レビュー
- ヘッド (10 分): Copilot を使用してテストを生成および実行する
- ドキュメント (5 分): Copilot を使用して文書化する
実践例: サービスの作成
このワークフローを適用して UserService を作成する方法を見てみましょう。
Design a UserService for my application.
Context:
- Using TypeScript + Prisma ORM
- Clean Architecture (service should not know about HTTP)
- Need: create, findById, findByEmail, update, softDelete
Requirements:
- Constructor injection for dependencies
- Custom errors (ValidationError, NotFoundError)
- All methods async
- Input validation in service layer
Output:
1. Interface definition
2. Implementation with all methods
3. Brief explanation of design decisions
// users.service.ts
import {{ '{' }} Injectable {{ '}' }} from '@nestjs/common';
import {{ '{' }} UsersRepository {{ '}' }} from './users.repository';
import {{ '{' }} CreateUserDto, UpdateUserDto {{ '}' }} from './dto';
import {{ '{' }} User {{ '}' }} from './entities/user.entity';
import {{ '{' }} ValidationError, NotFoundError {{ '}' }} from '@shared/errors';
import {{ '{' }} hashPassword {{ '}' }} from '@shared/utils/crypto';
@Injectable()
export class UsersService {{ '{' }}
constructor(private readonly usersRepository: UsersRepository) {{ '{' }}{{ '}' }}
async create(dto: CreateUserDto): Promise<User> {{ '{' }}
// Check if email already exists
const existing = await this.usersRepository.findByEmail(dto.email);
if (existing) {{ '{' }}
throw new ValidationError('Email already registered');
{{ '}' }}
// Hash password before saving
const hashedPassword = await hashPassword(dto.password);
return this.usersRepository.create({{ '{' }}
...dto,
password: hashedPassword,
{{ '}' }});
{{ '}' }}
async findById(id: string): Promise<User> {{ '{' }}
const user = await this.usersRepository.findById(id);
if (!user) {{ '{' }}
throw new NotFoundError('User', id);
{{ '}' }}
return user;
{{ '}' }}
async findByEmail(email: string): Promise<User | null> {{ '{' }}
return this.usersRepository.findByEmail(email);
{{ '}' }}
async update(id: string, dto: UpdateUserDto): Promise<User> {{ '{' }}
// Verify user exists
await this.findById(id);
// If updating email, check it's not taken
if (dto.email) {{ '{' }}
const existing = await this.usersRepository.findByEmail(dto.email);
if (existing && existing.id !== id) {{ '{' }}
throw new ValidationError('Email already in use');
{{ '}' }}
{{ '}' }}
return this.usersRepository.update(id, dto);
{{ '}' }}
async softDelete(id: string): Promise<void> {{ '{' }}
await this.findById(id);
await this.usersRepository.softDelete(id);
{{ '}' }}
{{ '}' }}
避けるべきよくある間違い
🚫 七つの大罪と副操縦士
- 曖昧なプロンプト: 「私を API にしてください」 → 何を、どのように、なぜするのかを具体的にする
- 盲目的な信頼: レビューせずにコードを受け入れる → 常に確認する
- ゼロコンテキスト: プロジェクト情報を提供しない → 背景を提供する
- 強制的なコピー&ペースト: 理解せずにコピーする → まずは理解する
- エラーを無視する: 同じプロンプトを繰り返します → 分析して修正します
- 過剰依存: すべてにCopilotを使用 → コアスキルを維持
- ドキュメントがありません: AI の決定を追跡しない → 選択を文書化する
AIコードの品質検証
Copilot によって生成されたコードをコミットする前に、必ず次の点を確認してください。
✅ チェックリストを確認する
- 理解: 各行の意味は理解できていますか?
- 安全性: 脆弱性 (インジェクション、XSS など) はありますか?
- パフォーマンス: N+1 クエリまたはメモリ リークはありますか?
- エラー処理: エラーは正しく処理されていますか?
- エッジケース: 予期しない入力があった場合はどうなりますか?
- 一貫性: プロジェクトの規約に従っていますか?
- テスト容易性: テストは簡単ですか?
- 保守性: 他の開発者がこのコードを理解できるでしょうか?
2026 年の Copilot: エージェント モードとマルチモデル
2025 年から 2026 年初頭にかけて、GitHub は開発を大幅に加速しました Copilot を単純なコード補完アシスタントからプラットフォームに変換 完全なエージェント開発。導入されたイノベーションは開発者のやり方を再定義します ソフトウェアのライフサイクル全体を通じて人工知能と対話します。
エージェント モード: 反復的な自律開発
L'エージェントモード これは、Copilot の最も重要な進化の飛躍を表しています。 開発者がすべてのステップをガイドする従来のチャットとは異なり、 エージェント モードは、アイデアを自律的に動作するコードに変換できます。システム 必要なサブタスクを特定し、それらを複数のファイルにわたって順番に実行し、繰り返し実行します。 望ましい結果が得られるまで、独自の出力を行います。
エージェント モードの主な機能には次のようなものがあります。
- 自己修復: 生成されたコード内のエラーを自動的に認識し、人間の介入なしで修正します。
- ターミナルコマンド: 依存関係のインストール、ビルドの実行、またはテストの起動を行うためのコマンドを組み込みターミナルで提案および実行します。
- ランタイム分析: 実行エラーを解釈し、対象を絞った修正を提案します
- 複数ファイルの編集: アーキテクチャの一貫性を維持しながら、複数のファイルを同時に処理します。
エージェント モードを使用する場合
エージェント モードは、複数のファイルにわたる調整された変更が必要な複雑なタスクに最適です。 大規模なリファクタリング、エンドツーエンドの新機能の実装、移行 アーキテクチャのさまざまな層にまたがるレガシー コードとバグ修正を行います。
マルチモデルのサポート
Copilot は単一の AI モデルに依存しなくなりました。 GitHub導入 のサポート 複数のモデル、開発者が選択できるようにします あなたの作業状況に最適なモデル。現在入手可能なモデルは次のとおりです。
Copilot (2026) で利用可能なテンプレート
| モデル | プロバイダー | 注意事項 |
|---|---|---|
| GPT-4.1 | OpenAI | デフォルトモデル、一般的な使用向けにバランスが取れています |
| GPT-5ミニ | OpenAI | 単純なタスクのための高速かつ軽量 |
| GPT-5.2-コーデックス | OpenAI | コード生成用に最適化 |
| クロード俳句 4.5 | 人間的 | 迅速かつ効率的 |
| クロード・ソネット 4.5 | 人間的 | 複雑な推論に優れています |
| ジェミニ 3 プロ | グーグル | 大規模なコンテキストに強い |
| ジェミニ 3 フラッシュ | グーグル | 応答速度の最適化 |
| ジェミニ 2.5 プロ | グーグル | 前世代モデル、まだ入手可能 |
の機能 自動モデル選択 モデルを自動的に選択します 可用性と要求されたタスクの性質に基づいてパフォーマンスが向上し、 手動で選択する必要があります。
コパイロット ワークスペース: エージェント開発環境
コパイロットワークスペース そして初の完全なエージェント開発環境 世界へ。 Workspace は単一の自然言語プロンプトから始まり、次のことが可能です。 開発者が直接介入することなく、機能全体を計画、作成、修正できます。
ワークスペースのワークフローは 3 つのフェーズに分かれています。
- 仕様: コードの現在の状態の自動分析と望ましい状態の定義
- 床: 必要な変更に関する詳細な計画の作成
- 実行: 関連するすべてのファイルに対する変更の調整された実装
Workspace は、Pro、Business、Enterprise プランの加入者が利用できます。
コパイロット編集: インライン複数ファイル編集
副操縦士の編集安定バージョンで利用できるようになり、指定できるようになりました。 一連のファイルに必要な変更を自然言語で記述し、そのまま放置します Copilot は、インライン変更をソース コードに直接適用します。機能性と VS Code、Visual Studio、およびメインの JetBrains IDE に統合され、プロセスが作成されます。 スムーズで即時の支援編集を実現します。
プラン、価格、導入
GitHub は、ニーズに合わせてさまざまなサブスクリプション レベルで Copilot を提供します あらゆる規模の個人開発者および組織:
Copilot 2026 計画
| Piano | 価格 | 主な特長 |
|---|---|---|
| 無料 | 無料 | 基本的なコード補完、制限付きチャット アクセス |
| プロ | $10/月 | フルアクセス、エージェントモード、副操縦士編集 |
| 仕事 | ユーザーあたり月額 19 ドル | チーム管理、会社ポリシー、監査ログ |
| 企業 | ユーザーあたり月額 39 ドル | プライベート テンプレートのカスタマイズ、SOC 2 および ISO 27001 への準拠 |
2026 年 1 月、Copilot が追いつきました 470万人の有料ユーザー、 ソフトウェア開発環境で最も多く採用されている AI ツールとしての役割が確認されました。
セキュリティとコード保護
GitHub は Copilot のセキュリティに多額の投資を行っており、メカニズムを導入しています 生成されたコードと開発者の知的財産の両方を保護するために進歩しました。
- 脆弱性の検出: ハードコーディングされた認証情報、SQL インジェクション、XSS などの安全でないパターンを自動的にブロックします。
- 重複フィルター: 既存のパブリックリポジトリに一致するコードを特定して報告する
- 知的財産権の補償: Business および Enterprise プランで生成されたコードの法的保護
- 責任ある AI フィルター: 有害または不適切なコンテンツの生成の防止
- エンタープライズ グレードのプライバシー: コードデータは有料プランのモデルのトレーニングには使用されません
安全上の注意
保護メカニズムが組み込まれているにもかかわらず、それは常に開発者の責任となります。 特に、 安全保障と批判。自動フィルターはリスクを軽減しますが、完全に排除することはできません。
結論と次のステップ
この最初の記事では、GitHub Copilot を使用するための基礎を築きました。 真の開発パートナーとして。私たちは次のことを見ました:
- Copilot の進化と現在の機能
- 結果を最大化するための正しい心構え
- コンテキストを提供するためにリポジトリを構造化する方法
- AI 主導の開発ワークフロー
- 避けるべきよくある間違い
Nel 次の記事、Copilot を使用する方法を見ていきます。 要件の概念と定義: 漠然としたアイデアから具体的な MVP まで、 ユーザーペルソナ、ユースケース、要件ドキュメントを含みます。
🎯 覚えておくべき重要なポイント
- コパイロットは増幅器です。入力が優れているほど、出力も優れています。
- コンテキストが重要: README、指示、一貫した構造
- ジュニア開発者のように扱います: 実行、テスト、反復
- 盲目的に信頼しないでください。生成されたコードを常に確認してください
- AI支援による意思決定の文書化







