4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Copilot 活用のヒント

Last updated at Posted at 2025-06-26

GitHub Copilot をより効果的に活用するためのヒントを整理

内容は以下公式ドキュメントから、特に重要と思った部分を抜粋:

活用ヒント

1. Copilotの得意・不得意を理解する

得意なこと

  • テストコードと繰り返し処理の実装
  • デバッグと構文エラーの修正
  • コードの説明とコメント作成
  • 正規表現の生成

不得意なこと

  • コーディング・技術以外のトピックへの対応
  • 完全に専門知識の代替となること(最終的な判断はユーザーが行う)

2. 効果的なプロンプトの作成

プロンプト作成のコツ

  • 段階的に詳細化: 最初は一般的に、その後具体的に
  • 複雑なタスクを分割: 大きなタスクを小さなタスクに分けて依頼
  • 具体例を提供: 期待する入力・出力の例を示す
  • 適切なコンテキストを提供: #codebase#<ファイル名>などの変数を活用

// 悪い例
電卓アプリを作って

// 良い例
Calculator クラスを生成してください
加算減算乗算除算階乗のメソッドを追加してください
外部ライブラリは使用せず再帰処理も使わないでください

3. コンテキストの最適化

コードインライン補完を改善する方法

  • 関連ファイルを開く: Copilotは開いているファイルからコンテキストを読み取る
  • トップレベルコメント: ファイルの目的を明確にするコメントを記述
  • 適切なimport文: 使用したいライブラリ・フレームワークを明示
  • 意味のある関数名: fetchData() より fetchUserProfileData() のような具体的な名前
  • サンプルコード: 期待するコードスタイルの例を一時的に配置

チャットでのコンテキスト活用

  • チャット参加者: @workspace@vscode などを使用
  • スラッシュコマンド: /explain/fix/tests などで意図を明確化
  • チャット変数: #<ファイル名>#<フォルダ名> でファイル参照
  • コンテキストの添付: ファイル、フォルダ、選択範囲をドラッグ&ドロップ

4. コードの品質管理

一貫性の維持

  • 高い品質基準を保つ: Copilotは既存コードのパターンに影響される
  • 「ガベージイン、ガベージアウト」: 低品質なコードは低品質な提案を生む
  • 必要に応じて無効化: プロトタイピング時などは一時的に補完を無効にする

提案の検証

  • コードを理解してから実装: 提案されたコードの動作を確認
  • セキュリティと保守性を考慮: 機能だけでなく、長期的な視点で評価
  • 自動テストとツール: リンティング、コードスキャンなどで品質をチェック

5. カスタマイズとパーソナライゼーション

Instructions ファイル

  • .github/instructions/.instructions.md でコーディング規約を定義
  • プロジェクト固有の要件やスタイルガイドを記述
  • チーム全体で共有可能

再利用可能なプロンプト

  • .github/prompts/ フォルダに .prompt.md ファイルを作成
  • 特定のタスク向けの定型プロンプトを保存
  • /プロンプト名 で呼び出し可能

上記ヒントを押さえた活用イメージ

1. プロジェクト準備フェーズ

カスタマイズ設定

  • .github/instructions/.instructions.md でコーディング規約を定義
  • .github/prompts/ フォルダに頻用プロンプトを準備
  • チーム共通の開発標準を確立

コンテキスト整備

  • 関連するファイル(設計書、既存コード)を配置
  • プロジェクトのimport文やライブラリ構成を明確化

2. 機能開発フェーズ

段階的な実装アプローチ

  • 複雑な要求は小さなタスクに分割して再依頼
// ステップ1: 高レベルな設計をChatで相談
@workspace この機能の実装方針について相談したいです
UserServiceクラスにログイン機能を追加したいのですが
既存のコードと整合性を保ちながら実装する方法を教えてください

// ステップ2: 具体的な実装をプロンプトで依頼
UserServiceクラスにloginメソッドを追加してください
- 引数: email(string), password(string)
- 戻り値: Promise<{success: boolean, token?: string, error?: string}>
- バリデーション: メール形式チェックパスワード長チェック
- 既存のauthenticateメソッドを内部で使用

コード品質の確保

  • インライン補完で基本構造を生成
  • 意味のある関数名・変数名を使用(fetchUserProfileData など)
  • トップレベルコメントでファイルの目的を明記
  • プロジェクト固有のパターンが蓄積されるよう意識的に品質を維持

3. テスト・デバッグフェーズ

テスト作成

/tests #UserService.js
上記ファイルのloginメソッドに対する単体テストを作成してください
正常系異常系不正なメール短いパスワードのテストケースを含めてください

デバッグ支援

/fix
このエラーの原因と修正方法を教えてください
TypeError: Cannot read property 'token' of undefined

4. コードレビュー・リファクタリングフェーズ

コード改善

  • 提案されたコードの動作を理解してから採用
  • セキュリティと保守性の観点で評価
  • 必要に応じてリンティングツールで品質チェック

ドキュメント作成

/explain #UserService.js
このクラスの役割と主要メソッドについて
新しいチームメンバー向けのドキュメントを作成してください
4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?