Skip to content

MS_GitHubCopilotPracticeExam

nishi_74322014 edited this page Sep 1, 2026 · 1 revision

GitHub Copilot模擬試験

概要

詳細

紹介

  • GitHub Copilot = AI ペア プログラマー
  • GitHub Copilot によってコーディングが速くなったと答えた開発者の割合は 90%

環境

  • 各 IDE のエクステンションから利用するのが最も一般的で簡単
  • IDE:VS、VS Code、Azure Data Studio、JetBrains IDEs(IntelliJ とか)、
    Vim/Neovim、Xcode、Eclipse
  • CLI のインストール:gh extension install github/gh-copilot

移行メモ(略記): 元ページの「Aze Data Studio」は
「Azure Data Studio」の脱字と解して補った。

補足(Azure Data Studio は終了): なお Azure Data Studio 自体は
2026 年 2 月に提供終了が告知されている
AzureのNotebookを参照)。
後継は VS Code の MSSQL 拡張機能である。

GitHub

  • GitHub Copilot Editor 構成ファイル:
    .github/copilot-instructions.md(Markdown ファイル)

  • コンテンツ除外:GitHub のリポジトリ・組織の設定から除外パスを設定

    • プライバシーを考慮したさまざまなプラン
      (リポジトリ・組織の除外パスの事?)を提供。
    • 除外ファイルは「コードの補完/提案」「コードレビュー」に利用されない。
    • IDE によっては除外ファイルからのセマンティック情報も
      使用されてしまう(完全に無視できない)
    • コンテンツの除外は即座に適用されない(30 分ぐらいの遅延がある)

補足(copilot-instructions.md は主流になった): 当時は
「Editor 構成ファイル」という位置づけだったが、現在は
リポジトリ全体に効くカスタム指示として広く使われている
(コーディング規約、使用フレームワーク、レビュー観点などを書く)。
パス単位で分けたい場合は .github/instructions/*.instructions.md
applyTo を指定する方式もある。
GitHub Copilotも参照。

プロンプティング

アクセス

LLM で一般的なチャット・インターフェイスだけでなく、
インタラクティブにコーディングを行うことを支援する機能が多い。

  • コード行補完:記述中の周辺コンテキストに基づいて
    プロンプトなしで提案(ゴーストテキスト)を提供

  • チャット・ビュー:メニュー・バーにある [チャットを開く] から、
    もしくは「Ctrl + Alt + I」

  • インライン・チャット:コンテキスト・メニューの [Copilot] →
    [Editor Inline Chat] から、もしくは「Ctrl + I」

  • クイック・チャット:VS Code のコマンド パレットで Chat: Open Quick Chat、
    もしくは「Ctrl + Shift + Alt + L」?

  • スラッシュ・コマンド:/tests など、
    プロンプトで要求するアクションを手短に明確にできる。

  • スマート・アクション:クリックするだけでワークフローに強力なショートカットを提供

  • CLI:シェル用

    • gh copilot explain:コマンドの説明を取得
    • gh copilot suggest:コマンドの提案を取得

コンテキスト

GitHub Copilot が調査する範囲と達成する目標を指定

  • ユーザ入力

    • コード行補完の場合はユーザ入力なしで記述中の周囲のコード行・コメントを使用
    • 現在ファイルと関連ファイル、チャット履歴のコンテキストを分析
    • 関連ファイル:エディタで開いているファイル、隣接ファイル、リポジトリ、
      URL、ファイル パス
    • チャット履歴:一時的にメモリに保持され、使用後に破棄され、
      ディスクには書き込まれない。
  • 参照やコマンド

    • 環境参照(@workspace@vscode@terminal
    • スラッシュ・コマンド(/generate/help/doc/explain/fix
      /optimize/tests/new/newNotebook/clear
    • 環境参照とスラッシュ・コマンドを組み合わせるときは
      @workspace /explain: ...」のようにして使う
    • プロンプト中でチャット変数(#editor#selection#file
      #terminalSelection#terminalLastCommand?)

移行メモ(助詞): 「環境参照とスラッシュ・コマンドは組み合わせるときは」を
「環境参照とスラッシュ・コマンド組み合わせるときは」に修正した。

受入操作

  • コード補完の受入は TAB キー

  • Command palette から

    • 選択中のコードを更新する提案は「受入」「破棄」「再実行」から選択して
      コーディングを続行。
    • 複数のコード補完が提案された場合、左矢印または右矢印を選択して
      各提案を確認。

ユースケース

コード生成

  • 複雑なコード生成:非手続き型処理(正規表現、SQL、LINQ)

  • コード変換:プログラミング言語 → 別のプログラミング言語

  • テストコード生成

    • VS Code のテスト エクスプローラーの目的:
      ユニット テストの実行とデバッグ、テスト実行の結果の表示、
      ワークスペースでのテスト ケースの管理。
    • ユニット テストの Arrange、Act、Assert セクション:
      ユニット テストをセットアップ、実行、検証のフェーズに
      構造化するために使用される。
    • ユニット テストのアサーション:引数・戻り値のチェックに分解でき、
      無効なデータの処理の防止は引数のアサーション、
      関数の成否は戻り値のアサーション
  • 修正コード生成

    • バグの修正

    • 改善の修正
      品質、信頼性、性能、セキュリティ、または、スケーラビリティ、
      ユーザビリティ、ポータビリティ

  • リファクタリングのコード生成
    リファクタリングは、読み易さを向上させ、複雑さを簡素化し、
    モジュール性を高め、再利用性を向上させ、
    管理しやすく保守しやすいコードベースを作成する。

    • 考慮事項:読み易さ、複雑さの軽減、モジュール性と再利用性、拡張性など。
    • 複雑さの軽減(内部構造、モジュール性と再利用性、拡張性を改善し、
      理解、保守、拡張を容易にする)
    • 読み易さの向上(複雑さの軽減、モジュール性の向上、再利用性の向上)

移行メモ(助詞): 「無効なデータ処理の防止は」を
「無効なデータ処理の防止は」に修正した。

コードの説明

  • コードの説明
  • レビューとコメント
  • ドキュメント生成
  • デバッグ支援

  • 例外処理改善:例外で機密情報を公開しないようにし、
    可能な限り最も具体的な例外をキャッチし、例外を飲み込まないようにする。

移行メモ(誤字): 元ページの行末が「〜しないようにする**・**」と
中黒になっていたため句点に改めた。

機能

インバウンドフロー

  • 安全な迅速な伝送とコンテキスト収集
    エディタで開いているタブの周囲のコード、ファイル、コンテンツを考慮。

  • プロキシフィルター

    • プロンプト・インジェクションなどのブロック
    • 有害な言葉のテスト、関連性のチェック、迅速なハッキングの試みの検出
  • 毒性フィルタリング

    • 生成内容に問題が入らないようにフィルタリング
    • 個人データのフィルタリング機能:個人データを積極的にフィルタリング。
  • LLM によるコード生成

アウトバウンドフロー

  • 後処理と応答の検証

    • コード品質、一致する公開コード(オプション)のチェック
      パブリック・コード・マッチング機能は、数か月ごとに更新される
      公開 GitHub リポジトリのインデックスとコードの提案を比較して一致を検索。

    • パフォーマンス・ベンチマークとメモリ使用量の最適化、有害な言語、関連性、

    • コードの品質(セキュリティの脆弱性を含む)、一意の識別子、
      およびオプションの公開コードマッチング

  • 提案の伝達とフィードバックループの開始
    ユーザーのアクションに基づいて学習/改善

  • 以降繰返しコード生成機能を改良。

補足(重複検出フィルタ): 「一致する公開コードのチェック」は
学習ガイドの Domain 7 にある duplication detector filter のことで、
提案が公開リポジトリのコードと 150 文字程度以上一致した場合に
その提案を抑止する設定である
(組織・個人の設定で ON/OFF できる)。
ライセンス上の懸念を減らすための仕組みで、
「IP 補償(IP indemnity)」を受ける前提条件にもなる。

企業向け

Business

GitHub Copilot Business

  • サブスクリプションのアクセス許可
    プロファイル ドロップダウン メニューの組織で設定

    • 組織内の現在および将来のすべてのユーザーにアクセスを許可
    • 組織内の特定のユーザーにアクセスを許可
    • GitHub の REST API を使用してアクセスを許可
  • Copilot メトリック API:組織メンバーから使用状況の指標を収集する

    • 過去 28 日間のデータ
    • アクティブユーザー数とエンゲージメントユーザー数
    • 言語と IDE 別の内訳
    • 企業、組織、チームの指標を表示するオプション
  • 自己署名証明書による VPN プロキシ サポート

Enterprise

GitHub Copilot Enterprise

  • 組織が独自のコードベースを使用してトレーニングする、
    パーソナライゼーションのレイヤー
  • ドキュメント セットで内部コードとドキュメントのカスタム コレクションを作成し、
    提案を特定プロジェクトとドメインに合わせて調整
  • LoRA:事前トレーニング済みモデルの各レイヤーに、
    完全なオーバーホールなしでトレーニング可能な要素を追加する方法
  • プル リクエスト サマリー:コード変更に基づいて
    プル リクエストの簡潔な概要を自動的に生成
  • 請求サイクル中のシート使用率 = 使用シート数 ×(経過日数 / 請求サイクルの合計日数)

その他

  • 有料/無料:今は制限付きの無料版が提供されている。
  • Microsoft の責任ある AI に関する 6 つの主要原則:
    公平性、信頼性と安全性、プライバシーとセキュリティ、包括性、透明性、説明責任

補足(6 原則は Domain 1 の中心): 学習ガイドの Domain 1
(Responsible AI、7%)は、ほぼこの 6 原則の理解を問うものである。
「公平性・信頼性と安全性・プライバシーとセキュリティ・包括性」の
4 つが実装上の原則、
「透明性・説明責任」の 2 つがそれらを支える基盤、
という構造で覚えると整理しやすい。

参考


Tags: .NET開発, 構成管理ツール, CI, BI/AI

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally