GitHub Copilot MS Learn Collections
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>GitHub資格Copilot]]
--[[GitHub Copilot - 学習ガイドPDF]]
--GitHub Copilot MS Learn Collections
--[[GitHub Copilot模擬試験]]
* 目次 [#d5271c83]
#contents
*概要 [#jb3afd19]
- GitHub Copilot の基礎 - AI ペア プログラマーの理解~
https://learn.microsoft.com/en-us/training/paths/copilot/
**[[Responsible AI with GitHub Copilot>https://learn.micr...
GitHub Copilot による責任ある AI
***ユニット [#h30ee971]
-Introduction 3 min
-Mitigate AI risks 3 min~
AIリスクの軽減
-Microsoft and GitHub's six principles of responsible AI ...
マイクロソフトとGitHubの責任あるAIの6原則
--公平性: AI システムはすべての人を公平に扱う必要がありま...
--信頼性と安全性: AI システムは信頼性と安全性を備えて動作...
--プライバシーとセキュリティ: AI システムは安全でプライバ...
--包括性: AI システムはすべての人に力を与え、人々を関与さ...
--透明性: AI システムは理解可能でなければなりません。
--説明責任: 人々は AI システムに対して説明責任を負うべき...
※ AI-900と同じ内容
***Knowledge check & summary [#wcb5209a]
-Knowledge check 3 min
-Summary 3 min
**[[Introduction to GitHub Copilot>https://learn.microsof...
GitHub Copilotの紹介
***ユニット [#ie24bc7b]
-Introduction 1 min
-GitHub Copilot, your AI pair programmer 2 min~
GitHub Copilot、あなたのAIペアプログラマー
--GitHub Copilot features
---Copilot for chat
---Copilot for pull requests
---Copilot for the CLI
--Subscription plans
---GitHub Copilot Business~
社内で GitHub Copilot を使用できるユーザーを制御
---GitHub Copilot Enterprise~
・GitHub Enterprise Cloud を通じて組織で利用~
・GitHub Copilot Business+組織向けのパーソナライゼーショ...
-Interact with Copilot 2 min~
Copilotとの対話
--Inline suggestions
--Multiple suggestions
--Inline chat
--Copilot chat
--Command palette(VScodeの機能ではなく、Copilot拡張でエ...
--Comments to code
--Explanations
--Automated test generation
-Set up, configure, and troubleshoot GitHub Copilot 7 min~
GitHub Copilotのセットアップ、設定、トラブルシューティング
--Copilotにサインアップ
--VS Code で Copilot を構成する
---Copilot 用の VS Code 拡張機能を追加する
---VS Code で Copilot を有効または無効にする
---VS Code でインライン提案を有効または無効にする
--VS Code で Copilot のトラブルシューティングを行う
***Knowledge check & summary [#j431adc0]
-Knowledge check 5 min
-Summary 1 min
***Exercise [#e3bca2c6]
-Exercise - Develop with AI-powered code suggestions by u...
演習 - GitHub CopilotとVS Codeを使って、AIによるコード提...
>https://github.com/skills/getting-started-with-github-co...
**[[Introduction to prompt engineering with GitHub Copilo...
GitHub Copilot を使用したプロンプトエンジニアリングの紹介
***ユニット [#z1256d1a]
-Introduction 2 min
-Prompt engineering foundations and best practices 7 min~
迅速なエンジニアリングの基礎とベストプラクティス
--プロンプトエンジニアリングとは
--迅速なエンジニアリングの原則
---Single(単一)
---Specific(具体的)
---Short(短い)
---Surround(囲う)
--迅速なエンジニアリングのベストプラクティス
---十分な明確さを提供する
---詳細を十分に伝える
---学習のための例を提供する
---アサートと反復
--Copilotがプロンプトから学習する方法
---Zero-shot learning
---One-shot learning
---Few-shot learning
-GitHub Copilot user prompt process flow 5 min~
Copilot がユーザーのプロンプトからコード提案するまでのす...
--インバウンドフロー:~
---1. 安全な迅速な伝送とコンテキスト収集~
エディタで開いているタブの周囲のコード、ファイル、コンテ...
---2. プロキシフィルター~
プロンプトインジェクションなどのブロック
---3. 毒性フィルタリング~
生成内容に問題や個人データが入らないようにフィルタリング
---4. LLMによるコード生成
--アウトバウンドフロー:~
---5. 後処理と応答の検証~
コード品質、一致する公開コード (オプション) のチェック
---6. 提案の伝達とフィードバックループの開始~
ユーザーのアクションに基づいて学習/改善
---7. 以降繰返しコード生成機能を改良。
-GitHub Copilot data 4 min~
GitHub Copilot のデータ
--GitHub Copilot コード提案のデータ処理~
エディタのCopilot は、プロンプトを保持しない。
--GitHub Copilot チャットのデータ処理~
---フォーマット:生成された応答を細心の注意を払ってフォー...
---ユーザー エンゲージメント:チャット インターフェイスは...
---データ保持:入出力からコンテキストを 28 日間保持
--GitHub Copilot Chat でサポートされているプロンプトの種類
---直接的な質問:問題に関する具体的な質問
---コード関連のリクエスト:生成、変更、説明
---自由形式の質問:概念を探ったりガイダンスを求めたり。
---コンテキスト プロンプト:カスタマイズされたサポートを...
--限定されたコンテキストウィンドウ
---4k トークンのコンテキスト ウィンドウで動作
---通常、約 200-500 行のコードまたは最大数千のトークンの...
---プロンプトを作成するときはコンテキスト ウィンドウの制...
-GitHub Copilot Large Language Models (LLMs) 4 min~
GitHub Copilot大規模言語モデル(LLM)
---GitHub CopilotにおけるLLMによるコーディングに関する提案
---LoRA(フルファインチューニングより軽量な代替手段)の微...
***Knowledge check & summary [#a71989c0]
-Knowledge check 6 min
-Summary 2 min
**[[Using advanced GitHub Copilot features>https://learn....
高度なGitHub Copilot機能の使用
***ユニット [#k36ca717]
-Introduction 1 min
-Advanced GitHub Copilot features 2 min~
GitHub Copilotの高度な機能
--The basics~
ゴースト テキストは無視するか、Tabキーを押して受け入れ。
--Chatting~
左側のサイドバーにあるチャット アイコンで左ペインにインタ...
--Using inline chat~
Windows ではCtrl+iでアクセス
--Slash commands~
[[Command palette(既出)>#ie24bc7b]]と比較し、コーディン...
(GitHub CopilotのSlash commandsは、&color(red){[[GitHub...
--Agents~
@terminal、@workspace、@vscodeなどのコンテキストを使用し...
-Applied GitHub Copilot techniques 3 min~
GitHub Copilotの応用テクニック
--暗黙のプロンプト:inline chat+Slash commands~
コマンドの後ろにプロンプトを入力しないコマンド(実際は、...
--選択的コンテキスト:Agents
***Exercise [#pa7daebd]
https://github.com/codespaces/new/MicrosoftDocs/mslearn-a...
-Exercise - Set up GitHub Copilot to work with Visual Stu...
演習 - Visual Studio Codeで動作するようにGitHub Copilotを...
-Exercise - Update a web API with GitHub Copilot 5 min~
演習 - GitHub Copilot を使ってウェブ API を更新する
--インライン・チャットで新しいルートを追加する
Create a new route that exposes the cities of a country/...
--スラッシュ・コマンドを使用してテストを作成する
/tests help me to create a new test for this route that ...
--エージェントを利用してドキュメントを作成する
@workspace I want to document how to run this project so...
***Knowledge check & summary [#ia6bf92c]
-Knowledge check 5 min
-Summary 1 min
**[[GitHub Copilot Across Environments: IDE, Chat, and Co...
環境をまたぐ GitHub Copilot: IDE、チャット、コマンドライ...
***ユニット [#jc4b15f9]
-Introduction 3 min
-Code completion with GitHub Copilot 6 min~
GitHub Copilotによるコード補完
--サポート言語:Python、JavaScript、Java、TypeScript、Rub...
--インテリセンス:自動提案、複数の提案パネル(Windows or ...
--活用ポイント:メソッドの実装、命名規則、書式設定、コメ...
--コメントを組み込んで提案を強化
---自然言語で書かれたコメントからコンテキストを分析して理解
---様々な種類のコメント:インライン、ブロック、TODOコメン...
---コメント駆動型コード生成:関数実装、コード補完、変数命...
-GitHub Copilot Chat 9 min
--シナリオ
---複雑なコード生成
---デバッグ支援
---コードの説明
--応答改善方法
---スコープ参照:ファイル参照(#file コマンド)、環境参照...
---スラッシュ・コマンド:クエリの意図を素早く指定(生成:...
---スラッシュ・コマンドとスコープ参照と環境参照(Agents?...
-フィードバック共有
--提案にマウス カーソルを合わせると、賛成ボタンと反対ボタ...
--提案が役に立ったと評価、👍️、役に立たなかったと評価👎
-GitHub Copilot for the Command Line 5 min~
コマンドラインのGitHub Copilot
--シェル用のGitHub Copilot(コマンド)
gh copilot xxx(ghcx)
---エイリアス設定が可能(後述)
gh copilot explain → ghce
gh copilot suggest → ghcs
---コマンドの説明を取得
gh copilot explain "sudo apt-get"
---コマンドの提案を取得
gh copilot suggest "Undo the last commit"
---提案されたコマンドの実行~
ghcsで、Execute commandオプションを選択
ghcs "What command to see running docker containers"
Suggestion:
sudo launchctl list
?Select an option
>Execute command
?Are you sure you want to execute the suggested command?
> Yes
Password:
PID Status e...
---提案されたコマンドを修正~
ghcsで、Revise commandオプションを選択
Suggestion:
docker ps
?Select an option
>Revise command
?How should this be revised?
>Make sure it includes both running and stopped containers
Suggestion:
docker ps -a
--設定オプション
---エイリアス設定: gh copilot explain → ghce、gh copilot...
---フィードバック:提案を改善するためにユーザーからのフィ...
---組織設定:管理者は特定の機能へのアクセスを有効または無...
---データ処理:使用状況データを保持して製品の改善に使用す...
***Knowledge check & summary [#r4d009c8]
-Knowledge check 15 min
-Summary 5 min
**[[Management and customization considerations with GitH...
GitHub Copilot の管理とカスタマイズに関する考慮事項
***ユニット [#l1eee640]
-Introduction 2 min
-Explore GitHub Copilot plans and their associated manage...
GitHub Copilotのプランと、関連する管理およびカスタマイズ...
--管理ポリシー機能
---Free & Pro:パブリックコードフィルターのみ有り
---Business :GitHub Enterprise Cloud不要(カスタマイズ...
---Enterprise:GitHub Enterprise Cloud必要(すべての機能...
--カスタマイズ機能
---Free & Pro & Business:チャットで組織コード、組織KBをR...
---Enterprise:すべての機能をサポート(GitHub Enterprise ...
--組織の料金プラン選択に重要な要素
---Business/Enterpriseは、より強力なプライバシー制御を提供
---Business/Enterpriseは、機密データを組織のプライバシー ...
---データの収集と保持:Copilotがプロンプトと提案を収集し...
---IP補償とデータ プライバシーは、法的、セキュリティ、顧...
-Explore contractual protections in GitHub Copilot and di...
GitHub Copilotにおける契約上の保護と、公開コードとのマッ...
--IP(知的財産)補償:Business/Enterprise プランでは提案...
--一致する公開コード設定をブロックする設定は、GitHubプロ...
--データ保護契約 (DPA):データ プライバシー規制への準拠を...
--Copilot トラスト センター:Copilot の仕組みに関する詳細...
-Manage content exclusions 7 min~
コンテンツ除外の管理
--コンテンツ除外がコード提案に与える影響
---当該ファイルではコード補完は利用できなくなる。
---当該ファイルの内容は、他のファイルのコード補完の提案に...
---当該影響を受けるファイルの内容は、Copilot Chat の応答...
--コンテンツ除外の設定方法
---組織のコンテンツ除外を設定する:一致する公開コード設定...
---リポジトリのコンテンツ除外を構成:リポジトリのsettings
--コンテンツ除外の制限
---IDEの制限:一部の統合開発環境 (IDE) ではコンテンツの除...
---セマンティック情報:除外されていないファイルから除外さ...
---ポリシー範囲:コンテンツ除外設定は、コンテンツ除外を構...
-Troubleshoot common problems with GitHub Copilot 5 min~
GitHub Copilotのよくある問題のトラブルシューティング
--コードの提案がありません
---インターネット接続を確認
---Copilot 拡張機能を更新
---IDEの互換性を確認
---コンテンツの除外を確認
--コンテンツの除外が期待どおりに機能しない
---除外の遅延適用
---ポリシー範囲が不十分
---IDE固有の制限
--コードの提案が不十分
---明確なコンテキストを提供
---Copilotコマンドの使用
---プロンプトの長さを調整
***Knowledge check & summary [#kb2a527a]
-Knowledge check 5 min
-Summary 1 min
*詳細 [#o331b27e]
- GitHub Copilot を使用してアプリケーション開発を加速させ...
https://learn.microsoft.com/en-us/training/paths/accelera...
※ 以下、[[概要(GitHub Copilot の基礎 - AI ペア プログラ...
**[[Get started with GitHub Copilot>https://learn.microso...
GitHub Copilotを使い始める
***ユニット [#h4577c8b]
-Introduction 3 min
-Examine AI tools from GitHub, OpenAI, and Microsoft 10 m...
GitHub、OpenAI、マイクロソフトのAIツールを検証する
--[[Azure AI services>Azure AI 資格(AI-900)#x67652cb]]
---[[Azure AI Foundry(元Azure AI Studio)>Azure AI 資格...
---[[Copilot Studio>Azure AI 資格(AI-900)#c2e14544]]
--[[AI Builder(Microsoft Power Platformの機能)>Microsof...
--Semantic Kernel SDK(Microsoft が OSS として発表したLLM...
--Visual Studio IntelliCode(次世代の開発効率化のためのAI...
--ChatGPT
--GitHub Copilot
-Examine GitHub Copilot tools, benefits, and limitations ...
GitHub Copilotのツール、利点、制限を調べる
--プロフェッショナル向けツールと機能
---GitHub Copilot Pro
IDEでのコード補完、Copilot Chatとその活用スキル
Copilot Chat(CLI、Mobile、GitHub (GitHub.com) 、Windows...
公開コードに一致する提案をブロック、プルリクエスト・サマリ
---GitHub Copilot Business
指定ファイルをCopilotから除外、
組織全体のポリシー管理
監査ログ、GitHub モデルのレート制限が引き上げ
---GitHub Copilot Enterprise
GitHub Copilot Business で提供される全機能
知識ベース(RAG)、微調整(LoRA)
--制限
---限定された範囲:複雑なコード構造やあまり知られていない...
---潜在的なバイアス:トレーニング データにバイアスが存在...
---セキュリティリスク:慎重に使用しないと、機密情報や脆弱...
---公開コードと一致する:トレーニング セットのコードと一...
---不正確なコード:意味的/構文的に正しくない無効なコード...
---コーディング以外のトピックに対する不正確な応答:コーデ...
-Examine the autocomplete features of the GitHub Copilot ...
GitHub Copilot 拡張機能のオートコンプリート機能を検証する
--オートコンプリート(コード補完)の提案候補を生成
---「int addInt(」と書くと、後続のメソッドのシグネチャと...
---もう少し複雑な「int addPrimeNumbersInNumericList(」と...
---Tab キーで受入後、addPrimeNumbersInNumericListメソッド...
--オートコンプリート(コード補完)の提案候補を管理
---[承認]を選択して、提案を(完全に)承認(ショートカット...
---「単語を受け入れる」を選択して、提案を部分的に受入(シ...
---「単語を受け入れる」の右側にある省略記号 (...) から「...
「行を受け入れる」:候補の行全体を受入、「常にツールバー...
---「<」/「>」を選択して代替候補を表示(ショートカットは...
--コメントからコードの提案を生成する
---コメントを入力し始めると、Copilot はコメントと周囲のコ...
// create a list of 100 random numbers between 1 and 1800
---コメントを書き続けると、Copilot はオートコンプリートの...
List<int> numbers = new List<int>();
Random random new Random();
for (int i = 0; i < 100; i++)
{
numbers.Add(random.Next(1, 1000));
}
Int sum addPrimeNumbersInNumerictist(numbers);
--提案タブを使用して複数の提案を表示
---最初のオートコンプリートの提案に満足できない場合、タブ...
---「補完パネルを開く」:[補完パネルを開く]を選択(ショー...
---提案を受け入れるには例えば最初の「suggestion 1」の下の...
-Examine the AI assistance features of the GitHub Copilot...
GitHub Copilot Chat拡張機能のAI支援機能を検証する
--Copilot Chat のユースケース
---コードの説明と文書化
---コーディングに関する質問への回答
---エラーや問題のコンテキストに基づいて解決策&スニペット...
---メソッドのシグネチャと本体に基づいて、ユニット テスト ...
---既存のコードベースの(品質、信頼性、性能、セキュリティ...
--Visual Studio Code での Copilot チャット
---チャット・ビュー(メニュー・バーにある[チャットを開く]...
「in the selected code, what does sum represent?」などと...
---インライン・チャット(コンテキスト・メニューの[Copilot...
・エディターにインラインのインターフェイスが表示され、そ...
・前述のnumbers生成コードを選択肢た状態で、インラインのイ...
「Update this code to ensure that numbers doesn't inclu...
・選択中のコードを更新する提案を「受入」「破棄」「再実行...
---クイック・チャット(VSCのコマンド パレットでChat: Open...
エディタの上部に表示されるチャット・ビューで、インライン...
---スマート・アクション(コンテキスト・メニューから選択)~
・説明(Explain):選択したコードの自然言語による説明を生...
・修正(Fix):選択したコードの修正を提案。~
・レビューとコメント(Review and Comment):選択したコー...
・ドキュメントの生成(Generate Docs):選択したコードのド...
・テストの生成(Generate Tests):選択したコードの単体テ...
・場合によって[レビューとコメント]→「修正」のようにスマー...
---Copilot Chatでのプロンプト構築~
・冒頭で使用する環境参照(@workspace、@vscode、@terminal)~
・冒頭で使用するスラッシュ・コマンド(/clear、/new、/help...
・環境参照とスラッシュ・コマンドは組み合わせるときは「@wo...
・プロンプト中でチャット変数(#editor、#selection、#file...
***Exercise [#g00140c7]
-Exercise - Install GitHub Copilot extensions for Visual ...
エクササイズ - Visual Studio Code用のGitHub Copilot拡張機...
--Copilotサブスクリプションを設定
---個人の GitHub アカウントを使用して、GitHub Copilot Pro...
(月間/年間/30日間の、2,000回のコード自動補完と50件のチャ...
---教育者、学生、および選ばれたオープンソースのメンテナー...
---GitHub アカウントが組織を通じてライセンスされている場...
--Visual Studio Code 用の Copilot 拡張機能を設定
---Visual Studio Codeと、Copilot、Copilot Chat 拡張機能を...
---Visual Studio Code から GitHub にサインイン(Visual St...
-Exercise - Configure GitHub Copilot extensions for Visua...
練習 - Visual Studio Code用のGitHub Copilot拡張機能を設定...
--Copilotを有効または無効にする
---Visual Studio Code で、拡張機能ビューを開く
---インストールされている拡張機能のリストで、Copilotを見...
---Copilot 拡張機能の歯車アイコンから有効化と無効化のオプ...
--Visual Studio Code で Copilot と Copilot Chat を構成
---インストールすると、デフォルト設定で構成される。
---拡張機能の設定にアクセスする方法~
・Manageアイコンを使用して、Visual Studio Code の設定タブ...
・Copilot ステータス アイコンを使用して Copilot ステータ...
---Copilot拡張機能の設定を構成~
・利用可能な設定のリストを確認し「拡張機能」ラベルの下で...
・Copilot の設定には次のオプションが含まれる(自動補完を...
・「拡張機能」ラベルの下で、2 番目の Copilot 拡張機能を選...
・Copilot Chat の設定には、プレビューと実験的なオプション...
---GitHub.com で Copilot 設定を構成~
・個人アカウント、組織アカウントを通じて管理できる。~
・サブスクリプション管理、プロンプトと提案の保持の構成、...
---Copilot のキーボードショートカット~
・Visual Studio Code でデフォルトのキーボード ショートカ...
・キーボード ショートカット エディターで特定のコマンド毎...
***Knowledge check & summary [#bd4af56e]
-Knowledge check 10 min
--Copilot は開発者に提案を提供することでの生産性を向上さ...
--オートコンプリートには受入、破棄、代替の3つのオプショ...
--環境参照(@workspace、@vscode、@terminal)でコンテキス...
--テストコード生成:✗「ユーザーの個人的なコーディング ス...
--言語サポートは既定で全て有効で、plaintext、markdownは無...
-Summary 2 min
**[[Generate documentation using GitHub Copilot tools>htt...
GitHub Copilot ツールを使用してドキュメントを生成する
***ユニット [#n9f31b73]
-Introduction 3 min
-Examine the "document" and "explain" features of GitHub ...
GitHub Copilot Chatの「ドキュメント」と「説明」機能を調べる
--Visual Studio Code で Copilot Chat にアクセスする~
チャット・ビュー:、インライン・チャット、スマート アクシ...
--Copilot Chat を使用して説明を生成する~
プロンプト作成には、環境参照、スラッシュ・コマンド、チャ...
---チャット・ビュー:@workspace /explain Explain this pro...
---チャット・ビュー:@workspace /explain Explain the depe...
---チャット・ビュー:@workspace /explain #file:program.cs...
---インライン・チャット:/explain #selection Explain how ...
---インライン・チャット:/explain Explain this code block
---チャット・ビューよりインライン・チャットの方がスコープ...
--Copilot Chat を使用してドキュメントを生成する
---インラインド・キュメントを生成する~
・Copilot Chat~
・インライン・チャットに/docコマンドを入力~
・Generate Docsスマート・アクションを使用して選択したコー...
---ワークスペース全体のプロジェクト・ドキュメント
@workspace Generate a project summary that can be used a...
@workspace Generate a readme markdown document that can ...
---Copilot Chat の出力を確認して修正する。~
・出力の正確性と完全性を確認~
・プロンプト(コードや質問)と一致していることを確認~
・エラーや不正確な部分を修正し、コードの動作と目的が正確...
・出力に追加情報またはコンテキストを追加して、より包括的...
***Exercise [#me8555c3]
-Visual Studio Code環境でサンプルアプリを準備する
--[[リンク>https://raw.githubusercontent.com/MicrosoftLea...
-Exercise - Generate code explanations using GitHub Copil...
演習 - GitHub Copilot Chatを使ってコードの説明を生成する
--Visual Studio Code でSampleAppsフォルダのAPL2007M2Sampl...
--ワークスペースとプロジェクトファイルの説明
---Visual Studio Code の上部メニューバーで、[チャットを開...
---次のコマンドを使用してプロジェクトの説明を依頼:@works...
---チャット ビューで応答を確認、下部でフォローアップの質...
---MainWindow.xaml.csを開き次のコマンドを使用してファイル...
---チャット ビューで応答を確認、下部でフォローアップの質...
--選択されたコードの説明
---MainWindow.xaml.csファイルがエディターで開いていること...
---下にスクロールしてSumPageSizesAsync()メソッドを見つけ...
---コード行を選択し、「説明」スマート アクションを使用し...
---チャット ビューで応答を確認、説明に含まれる詳細レベル...
--エラーの説明
---MainWindow.xaml.csファイルがエディターで開いていること...
---下にスクロールしてSumPageSizesAsync()メソッドを見つけ...
---マウスカーソルを上に移動するdownloadTasksとエラーメッ...
---エラーを含むコード行を選択し「Ctrl + I」でインライン ...
---チャット ビューで応答を確認、エラーに関する情報と修正...
---Copilot Chat が提供する説明を使用して、コード内のエラ...
--新しい機能の説明
---SumPageSizesAsyncおよびProcessUrlAsyncメソッドを含むコ...
---チャット・ビューで、ダウンロード・プロセス中にスローさ...
@workspace /explain #MainWindow.xaml.cs How can I handle...
---チャット ビューで応答を確認、エラーに関する情報と修正...
---コード スニペットをコピーするか、カーソルの位置にコー...
---インライン チャットの場合、ProcessUrlAsyncメソッドを選...
---「Ctrl+I」で次のプロンプトを入力:How can I handle exc...
---チャット ビューで応答を確認、エラーに関する情報と修正...
---提案されたエラー処理コードを受け入れるには、[受け入れ...
-Exercise - Generate project documentation by using GitHu...
演習 - GitHub Copilot Chat を使ってプロジェクト・ドキュメ...
--Visual Studio Code でSampleAppsフォルダのAPL2007M2Sampl...
--[チャットを開く]を選択しCopilot チャット ビューを開く。
--チャット ビューで、ワークスペースのドキュメントを生成:...
---プロジェクト用に生成されたプロジェクト ドキュメントを...
---「プロジェクトの制約を文書化する」や「プロジェクトの依...
--チャット ビューで、プロジェクトの依存関係を説明するドキ...
---プロジェクトの依存関係のドキュメントを確認
---同様に、プロジェクト概要、要件、制約、アーキテクチャ、...
--チャット ビューでAPL2007M2Sample1プロジェクトの README ...
マークダウン ファイルとしてフォーマットする場合:@workspa...
---APL2007M2Sample1プロジェクト用に生成された README を確認
---いくつかのセクションとともに、プロジェクトの概要を提供...
---プロンプトを調整して、組織で推奨される README セクショ...
-Exercise - Generate inline code documentation by using G...
演習 - GitHub Copilot Chat を使ってインライン・コード・ド...
--Visual Studio Code でSampleAppsフォルダのAPL2007M2Sampl...
--チャット・ビューを使用してインライン・コード・ドキュメ...
---MainWindow.xaml.csファイルを開きファイルの先頭から最後...
---チャットビューを開き次のプロンプトを入力:@workspace #...
---提案されたコードドキュメントを少し時間をかけて確認、推...
---簡潔でコードの一部が省略される場合がある。コード コメ...
--インライン・チャットを使用してインライン・コード・ドキ...
インライン チャットを使用すると、コードにコメントを追加す...
---MainWindow.xaml.csファイルの先頭までスクロールしOnStar...
---インライン・チャットを「Ctrl + I」で開き、次のプロンプ...
---OnStartButtonClickメソッドの2つのパラメタの概要と説明...
---提案を確認し必要に応じて修正する。提案を破棄するには[...
--スマート・アクションを使用してインライン・コード・ドキ...
---Visual Studio コード エディターで、MainWindowクラス内...
---選択したコードを右クリックし「Copilot」→「Generate Doc...
---ドキュメントが生成され、提案された変更を確認、コメント...
---生成されたドキュメントに問題が見つかった場合は、続行す...
---[承諾]を選択、MainWindowクラス内の各メソッドに生成され...
-Exercise – Complete the "code documentation" challenge 1...
演習 - "コード・ドキュメント" の課題を完了する
--Visual Studio Code でSampleAppsフォルダのAPL2007M2Sampl...
--ターミナルでdotnet buildコマンドを実行したときに、プロ...
--注:このプロジェクトは、特殊なランタイム環境を使用するI...
--Visual Studio Code で Copilot Chat を使用して、インライ...
--生成されたドキュメントをレビューして、要件を満たしてい...
--文書化されたコードを保存した後、ターミナルでdotnet buil...
-Review the "code documentation" solution 8 min~
コード・ドキュメント・ソリューションをレビューする
--Visual Studio Code でSampleAppsフォルダのAPL2007M2Sampl...
--Program.cs ファイルのインライン ドキュメント
---Deviceクラスのプロパティとメソッドを含むコード ブロッ...
---チャット・ビューを開き、次のプロンプトを入力:@workspa...
---提案された変更を確認、[エディターで適用]を選択
---コード ファイルの上部で提案された変更がすべて承認され...
--プロジェクトのプロジェクト ドキュメント
---チャットビューを開き次のプロンプトを入力:@workspace d...
---ドキュメントをマークダウンとしてフォーマットするには、...
--プロジェクト リポジトリの README ファイル
---チャットビューを開き次のプロンプトを入力:@workspace g...
---ドキュメントをマークダウンとしてフォーマットするには、...
***Knowledge check & summary [#zb746cdd]
-Knowledge check 8 min
-Summary 3 min
**[[Develop code features using GitHub Copilot tools>http...
GitHub Copilot ツールを使用してコード機能を開発する
***ユニット [#u6d463d1]
-Introduction 3 min
-Examine the code development features of GitHub Copilot ...
GitHub Copilot のコード開発機能を検証する
--Visual Studio Code の Copilot ツール
---コード行補完: コード行補完を使用し、より効率的にコード...
---チャット・ビュー:左側のサイドバーにあるチャット アイ...
---インライン・チャット:エディタから直接インライン・チャ...
---クイック・チャット:簡単な質問をして作業を再開
---スマート・アクション:プロンプトを入力しなくても特定タ...
--Copilot のコード行補完を使用してコードを生成する
---メソッド シグネチャの入力を開始すると、Copilot はコー...
---提案に満足したら、Tab キーを押すか、[承認]を選択する。
---また、メソッドの呼び出しステートメントを入力し始めると...
---また、コードコメントからメソッドのシグネチャと実装の提...
---これにより時間を節約し、コードを正確に記述できる。
--Copilot Chatを使用してコードを生成する
---Copilot Chat は、チャット・インターフェースとスマート...
---例えば、新しいメソッドを作成するように求めるプロンプト...
---提案を確認してから承認または破棄することで、コードの初...
---Copilot Chat に、明確な範囲と意図を含むプロンプトや質...
---会話形式+環境参照、スラッシュ・コマンド、チャット変数...
---例えばスキャフォールディングなどもできる~
・C#:@workspace /new console application in C#~
・JS:@workspace /new Node.js Express Pug TypeScript
--チャット・ビューを使用してコードを生成する
---Visual Studio Code コマンド・センターから[チャットを開...
---さらに画面スペースが必要な場合は、チャット・ビューのコ...
--チャット・ビューで(生成された)コード・ブロックを管理...
---初期オプション:[エディターで適用]、[カーソル位置に挿...
---[その他のアクション (...)]:[ターミナルに挿入] (Ctrl+A...
--インライン・チャットを使用してコードを生成
---エディタで作業しているときに「Ctrl + I」を押しインライ...
---次の方法で使用できる(既存のコードに関する質問、変更ま...
---インラインチャットを使用して新しい機能を作成~
・エディターでコードを選択し「Ctrl + I」を押してインライ...
・作成する機能を説明するプロンプトを入力、提供される提案...
・満足したら、提案を受け入れます。
---インラインチャットを使用して正規表現を作成~
インライン・チャットを使用すると、正規表現をすばやく正確...
・エディターでコードを選択し「Ctrl + I」を押してインライ...
・検証する必要があるデータ・パターン(メアドなど)を説明...
・提案された正規表現を少し評価する
-Examine GitHub Copilot best practices 8 min~
GitHub Copilot のベストプラクティスを検証する
--Visual Studio Code 用の Copilot 拡張機能を使用しベスト ...
--Copilotのインライン提案を最大限に活用
--Copilot にコンテキストを提供する
--コンテキストの定義に役立つファイルを開く。
--コード・ファイルのトップレベルのコメントでコンテキスト...
--適切な包含と参照(作業に必要なインクルードまたはモジュ...
--意味のある関数名、具体的かつ適切な関数コメント
--サンプルコード付きPrime Copilot(探しているものに近いサ...
--(プロンプト、コンテキストの)一貫性を保ち、品質基準を...
--Copilot Chatのエクスペリエンスを最適化するために実行で...
--まずは一般的なことから始めて、具体的な内容に移る
---数が素数かどうかを知らせる関数を書いてください。
---この関数は整数を受け取り、その整数が素数であれば true ...
---入力が正の整数でない場合、関数はエラーをスローする必要...
--Copilot があなたの要求を理解できるように、例を使用(ICL)
--複雑または大規模なタスクを完了させたい場合、より単純な...
---10 x 10 の文字グリッドを生成する関数を記述
---有効な単語のリストが与えられた場合に、文字のグリッド内...
---前の関数を使用して、少なくとも 10 個の単語を含む 10 x ...
---前の関数を更新して、文字のグリッドとグリッドからランダ...
--曖昧さを避ける「これは何をしますか」→「createUser 関数...
--コンテキストや指示を明確にする(ファイルを開く、コード...
--その他
---実験と反復:希望する結果が得られない場合は、プロンプト...
---履歴を関連性のあるものにする:新しい会話を開始する。/c...
---適切なコーディング方法に従う(コンテキストとなる既存の...
・一貫したコード スタイルとパターンを使用~
・変数と関数にはわかりやすい名前を使用~
・コードにコメントを付ける。~
・コードを疎結合&機能的凝集度に保つ。~
・ユニットテストを含める。
***Exercise [#l86e319f]
-Exercise - Create code by using code line completions 14...
演習 - コード行補完を使用してコードを作成する
--Visual Studio Code環境でサンプルアプリを準備する
---Visual Studio Code の新しいインスタンスを開き、チャッ...
---チャット ビューで、次のスキャフォ・プロンプトを入力し...
@workspace /new console application named APL2007M3. Use...
---[フォルダーの選択]ダイアログで[デスクトップ]を選択して...
---新しいプロジェクトを開くように求められたら[開く]を選択
---ソリューション・エクスプローラー・ビューで、Program.cs...
--Copilot を使用してコメントからコード行の補完を生成する。
---Program.csファイルで、Mainメソッドの下に2つの空行を作...
---テスト データを生成するために次のコード コメントを作成...
// public struct SalesData. Include the following fields...
---Copilot が提供するコード補完の提案を確認(データ型に注...
---一部のデータ型が希望するものでなくても、提案された自動...
---また、提案タブを使用して複数の提案を表示したり、一度、...
---SalesData構造体の下に 2 つの空のコード行を作成。
---構造体を使用してテスト・データを生成するSalesDataメソ...
/* the GenerateSalesData method returns 1000 SalesData r...
---Copilot が提供するコード補完の提案を確認(オブジェクト...
---ニーズに最も適した提案を確認して受入(Tabキー)て、必...
---たった 2 つのコメントで構造体とテスト・データを生成す...
--Copilotを使用してコード行補完を生成する。
---QuarterlyIncomeReportクラスのQuarterlySalesReportメソ...
public void QuarterlySalesReport(SalesData[] salesData)
---QuarterlySalesReportの操作について検討(売上データに基...
・コレクションを反復処理しますsalesData~
・salesDataコレクションを反復処理~
・販売数量と単価に基づいて、各販売の価値を計算~
・売上日を使用して、売上がどの四半期に属するかを判断~
・四半期ごとの売上を合計し、売上レポートを作成
---QuarterlySalesReportの先頭でforeachを入力、コード行補...
---提案が不適切だったので、コンテキストとなるコードを調整
---QuarterlySalesReport内の空白行にカーソルを置き、Enter...
---コード行補完の提案を待ち、提案で意図した処理が実行され...
---販売月に基づいて四半期を決定するために使用されるGetQua...
---QuarterlySalesReportの下に2つの空白行を作成するとGetQu...
---(QuarterlySalesReportのコンテキストからGetQuarterのコ...
---提案で意図した処理が実行されることを確認し受入(Tabキ...
---Mainメソッドでは、上記の(略)でQuarterlyIncomeReport...
---Mainメソッドのコードコメント「// call the GenerateSale...
---Copilot によって提案されたコード補完を確認して承認。
---同様に、Mainメソッドのコードコメント「// call the Quar...
---Copilot によって提案されたコード補完を確認して承認。
---アプリを実行してレポート出力を確認(ターミナル ウィン...
---ターミナル・ウィンドウで出力を確認(四半期の結果はラン...
-Exercise - Create code by using GitHub Copilot Inline Ch...
演習 - GitHub Copilot インライン・チャットを使用してコー...
--Visual Studio Code環境でサンプルアプリを準備(SampleApp...
--コーディングタスクとプロジェクト目標を確認する
---SalesData構造体とGenerateSalesDataメソッドを更新して「...
---QuarterlySalesReportメソッドを更新~
・四半期は Q1 から Q4 の順序でリスト~
・地域設定を使用して通貨の値を表示~
・四半期利益と利益率の計算を含める~
・四半期ごとの売上、利益、部門別の利益率を計算
--プロンプトを開発するためのアプローチを検討する~
プロンプトを開発するときは、次のベスト プラクティスに留意
--インライン・チャットを使用してデータ構造を生成する
---SalesData構造体の下の空白行にカーソルを置き、インライ...
I need a public struct ProdDepartments that contains a s...
---提案を確認して受入(Tabキー)
---ProdDepartments構造体の下の空白行にカーソルを置き、イ...
I need a public struct ManufacturingSites that contains ...
---提案を確認して受入(Tabキー)
---SalesData構造体を選択、インライン・チャット(Ctrl + I...
add double field baseCost and int field volumeDiscount t...
---提案を確認して受入(Tabキー)
--インライン・チャットを使用してGenerateSalesDataメソッド...
---Program.csファイルでGenerateSalesDataメソッドを見つけ...
---departmentNameに値を割り当てるコード行を選択、インライ...
Update the departmentName assignment to randomly select ...
---提案を確認して受入(Tabキー)
---departmentNameの割り当て後に 3 つの空白行を作成し次の...
int indexOfDept = 0;
string deptAbb = "";
string firstDigit = "";
string nextTwoDigits = "";
string sizeCode = "";
string colorCode = "";
string manufacturingSite = "";
---「int indexOfDept = 0;」コード行を選択し、インライン・...
Assign the array index for departmentName to indexOfDept.
---期待した提案が表示されないので[破棄]を選択して提案を拒...
Create an int named indexOfDept. Assign the array index ...
---(※ コードを選択せずにインライン・チャットを開くと、Co...
---提案を確認して受入(Tabキー)
---「string deptAbb = "";」コード行を選択し、インライン・...
Use indexOfDept to assign a department abbreviation to d...
---提案を確認して受入(Tabキー)
---「string firstDigit = "";」コード行を選択し、インライ...
Assign indexOfDept + 1 to firstDigit.
---提案を確認して受入(Tabキー)
---「string nextTwoDigits = "";」コード行を選択し、インラ...
Assign a random number 1-99 to nextTwoDigits. Include a ...
---提案を確認して受入(Tabキー)
---「string sizeCode = "";」コード行を選択し、インライン...
From the list {XS, S, M, L, XL}, randomly select a produ...
---提案を確認して受入(Tabキー)
---「string colorCode = "";」コード行を選択し、インライン...
From the list {BK, BL, GR, RD, YL, OR, WT, GY}, randomly...
---提案を確認して受入(Tabキー)
---「string manufacturingSite = "";」コード行を選択し、イ...
Assign a randomly selected manufacturing site to manufac...
---提案を確認して受入(Tabキー)
---「salesData[i].productID = random.Next(1, 101);」コー...
Add a "-" to deptAbb, nextTwoDigits, sizeCode, and color...
---提案を確認して受入(Tabキー)
---unitPriceの割り当てを、25 ~ 300 の範囲を使用するよう...
salesData[i].unitPrice = random.Next(25, 300) + random.N...
---「salesData[i].baseCost」コード行を選択し、インライン...
Discount the unitPrice by a random percentage between 5 ...
---提案を確認して受入(Tabキー)
---「salesData[i].volumeDiscount」コード行を選択し、イン...
Assign 10 percent of quantitySold to volumeDiscount. Tru...
---提案を確認して受入(Tabキー)
--インライン・チャットを使用してQuarterlySalesReportメソ...
---Program.cs ファイルでQuarterlySalesReportメソッドを見...
---メソッド全体を選択し、インライン・チャット(Ctrl + I)...
Update the QuarterlySalesReport method to display quarte...
---提案を確認して受入(Tabキー)、四半期の売上結果が順番...
---メソッド全体を選択し、インライン・チャットを開いて、次...
Update the QuarterlySalesReport method to include calcul...
---提案を確認して受入(Tabキー)、四半期の売上結果に利益...
---メソッド全体を選択し、インライン・チャットを開いて、次...
Update the QuarterlySalesReport method to include calcul...
---提案を確認して受入(Tabキー)、四半期の売上結果に利益...
---メソッド全体を選択し、インライン・チャットを開いて、次...
Update the QuarterlySalesReport method to include calcul...
---提案を確認して受入(Tabキー)、四半期の売上結果に利益...
-Exercise - Complete the create new code challenge 16 min~
エクササイズ - 新しいコードの作成に挑戦する
--コーディング環境はVSCodeでSampleAppsのAPL2007M3SalesRep...
--部門販売情報をフォーマットする
---アプリケーションを実行し、次の「前」の形式を確認
---Copilot Chat を使用して、部門の販売情報をテーブルとし...
「部門別」売上情報をテーブルとしてフォーマットし、テーブ...
---アプリケーションを実行し、更新されたアプリケーションが...
--四半期ごとに上位3件の販売注文を表示する
---アプリケーションを実行し、次の「前」の形式を確認
---Copilot Chat を使用して、四半期ごとの上位 3 つの販売注...
・四半期の上位 3 件の販売注文は、総販売額 (販売個数 * 単...
・四半期売上レポートには、上位 3 つの注文ごとに、製品 ID...
・上位 3 つの販売注文のリストの順序は、利益の降順 (最高か...
・四半期売上レポートでは、上位の販売注文の情報を表形式で...
---アプリケーションを実行し、更新されたアプリケーションが...
-Review the create new code solution 8 min~
新しいコードを作成するソリューションをレビューする
--「部門販売情報のフォーマット」ソリューションを確認する
---Visual Studio Code で Program.cs ファイルを開き
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Update the QuarterlySalesReport method to format the rep...
---提案を確認して受入(Tabキー)
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Use extended ASCII characters to add border lines to the...
---提案を確認して受入(Tabキー)
---Program.cs ファイルへの変更を保存しアプリケーションを...
---必要に応じて、列幅を手動で調整して、データ行の垂直線を...
Console.WriteLine("│ {0,-20} │ {1,18} │ {2,18} │ {3,18} ...
Console.WriteLine("│ {0,-20} │ {1,18} │ {2,18} │ {3,17}%...
--「四半期ごとに上位 3 つの販売注文を表示する」ソリューシ...
---Visual Studio Code で Program.cs ファイルを開き
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Update the QuarterlySalesReport method to include calcul...
---提案を確認して受入(Tabキー)
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Update the order in which the top three sales orders are...
---提案を確認して受入(Tabキー)
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Update the QuarterlySalesReport method to display all of...
---提案を確認して受入(Tabキー)
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Use extended ASCII characters to add border lines to the...
---提案を確認して受入(Tabキー)
---Program.cs ファイルへの変更を保存しアプリケーションを...
-Exercise - Complete the code logic challenge 16 min~
演習 - コードロジックの課題を完了する
-Review the code logic solution 8 min~
コードロジックのソリューションをレビューする
-Exercise - Convert code from one programming language to...
演習 - あるプログラミング言語から別のプログラミング言語へ...
--チャット・ビューを使用してプログラミング言語間でコード...
---Visual Studio Code の 1 番目のインスタンスでPythonのフ...
---main.pyの内容を選択、チャット ビューを開き、次のプロン...
Convert #selection to C#
---Visual Studio Code の 2 番目のインスタンスを開く
---チャット・ビューを開き、次のプロンプトを入力してスキャ...
@workspace /new console application in C# NET8 named APL...
---Visual Studio Code の 2 番目のインスタンスのProgram.cs...
--インライン・チャットを使用してプログラミング言語間でコ...
---Visual Studio Code の 1 番目のインスタンスでPythonのフ...
---main.pyの内容を選択、インライン・チャットを開き、次の...
Convert #selection to C#
---Visual Studio Code の 2 番目のインスタンスを開く
---インライン・チャットを開き、次のプロンプトを入力してス...
@workspace /new console application in C# NET8 named APL...
---Visual Studio Code の 2 番目のインスタンスのProgram.cs...
***Knowledge check & summary [#w87f1dc9]
-Knowledge check 8 min
--行補完:コメントとコード行
--補完:プロンプトとエディタ内のコードのコンテキスト
-Summary 3 min
**[[Develop unit tests using GitHub Copilot tools>https:/...
GitHub Copilot ツールを使用してユニットテストを開発する
***ユニット [#i4a361f8]
-Introduction 3 min
***Exercise [#v735d4e4]
-Examine the unit testing tools and environment 8 min~
単体テストツールと環境を調べる
--VSCodeでC#でテストフレームワーク(xUnit/NUnit/MSTest)...
--テスト・プロジェクトは被テスト・プロジェクトのプロジェ...
--Copilot Chat を使用してユニットテストケースを生成
---選択して生成
Write a unit test for the method in the #editor。
---選択して生成
#selection write a unit test for this code。
--Visual Studio Code でユニットテストを実行および管理~
テストフレームワークの仕様の話:https://zenn.dev/yuriemor...
-Exercise - Create unit tests by using GitHub Copilot Cha...
演習 - GitHub Copilot Chatを使ってユニットテストを作成する
--Visual Studio Code環境でサンプルアプリを準備する
---SampleApps.zipのAPL2007M4PrimeServiceフォルダをVisual ...
---Numbersフォルダーを展開し、PrimeService.csファイル内の...
--ユニットテスト用のxUnitテストプロジェクトを作成する
---Visual Studio Code でソリューション・エクスプローラー...
---ソリューション・エクスプローラー・ビューで、APL2007M4P...
---プロジェクト タイプのリストが表示されたら、xUnit テス...
---プロジェクト名として「PrimeService.UnitTests 」と入力...
---PrimeService.UnitTestsフォルダを展開しUnitTest1.cs フ...
---PrimeService.UnitTestsを右クリックし、[プロジェクト参...
---PrimeService.UnitTestsを右クリックし、新規ファイル、ク...
---名前空間を変更する:PrimeService.UnitTests → System.N...
---ソリューションをビルドするには、Ctrl + Shift + B → dot...
--チャット・ビューを使用してユニットテストを作成する
---ソリューション・エクスプローラー・ビューの Numbers で ...
---IsPrimeメソッドを選択しチャット・ビューを開き「コンテ...
---[添付ファイルの検索]DDLの最近開いたセクションでPrimeSe...
---[添付ファイルの検索]テキスト ボックスに「PrimeService....
---チャット・ビューで、/tests add unit tests for my code ...
---Copilot の提案を確認、「計画」と「単体テストを含むコー...
---[編集を適用]ボタンをクリックすると、ユニット テスト コ...
---このコードを使用して、PrimeService.UnitTests プロジェ...
---[ファイル]メニューで[名前を付けて保存]を選択し、PrimeS...
---PrimeServiceTests.csを選択し、[保存]を選択、上書きする...
---更新された PrimeServiceTests.cs ファイルを確認
---ビルドが成功すると各ユニット テストの横に緑色の「テス...
--インライン・チャットを使用してユニットテストを作成する
---ソリューション・エクスプローラー・ビューの Numbers で ...
---IsPrimeメソッドを選択しインライン・チャット・セッショ...
Create unit tests for the IsPrime method using the xUnit...
---チャット・ビューとインライン・チャットでは同様のテスト...
-Exercise - Create unit tests for specific conditions by ...
演習 - GitHub Copilotを使って特定の条件に対するユニットテ...
--Visual Studio Code環境でサンプルアプリを準備する
---SampleApps.zipのAPL2007M4PrimeService-UnitTestsフォル...
---PrimeService.UnitTestsフォルダを展開しPrimeServiceTest...
---PrimeServiceTests.cs ファイルを保存し、ソリューション...
--Copilot のコード行補完提案を使用してユニットテストを作...
---PrimeServiceTestsクラス内に空白行を作成し1-2 秒待つと...
---「承認」を選択し、Copilot によって生成された単体テスト...
---次セクションで不足している境界値の単体テストケースを提...
--Copilot と Copilot Chat を使用して特定の条件のユニット...
---PrimeServiceTestsクラスの内容を選択しチャット・ビュー...
---PrimeService.cs ファイルをチャット・ビューにD&Dしてコ...
---チャット・ビューに次のプロンプトを入力:@workspace #se...
---Copilot が提供する提案を確認
Yes, there are a few edge cases that should also be test...
1. Large Prime Numbers: Ensure the function can handle l...
1. 大きな素数: 関数が大きな素数を処理できることを確認し...
2. Large Non-Prime Numbers: Ensure the function can hand...
2. 大きな非素数: 関数が大きな非素数を処理できることを確...
3. Even Numbers Greater Than 2: Ensure the function retu...
3. 2 より大きい偶数: 関数が 2 より大きい偶数に対して fal...
4. Small Prime Numbers: Ensure the function correctly id...
4. 小さな素数: 関数が 2 や 3 などの小さな素数を正しく識...
Here are the additional test cases:
追加のテスト ケースは次のとおりです。
---PrimeServiceTestsクラスの最後のテスト・メソッドの後に...
---チャット・ビューでコード・スニペットの上にマウスを移動...
---PrimeServiceTests.cs ファイルを保存し、ソリューション...
---生成されたIsPrimeメソッドの単体テストを確認、テストに...
---マウス・ポインタを緑色の「テスト矢印」の上に置きクリッ...
---緑色の「テスト矢印」の 1 つを右クリックし「Reveal in T...
---テストの実行とデバッグ、およびテスト実行、結果表示に使...
---テスト・エクスプローラー・ビューで[テストの実行]を選択...
-Exercise - Complete the "create unit tests" challenge 12...
演習 - 「ユニットテストの作成」に挑戦する
--Visual Studio Code環境でサンプルアプリを準備する
---SampleApps.zipのAPL2007M4BankAccountフォルダをVisual S...
--チャレンジ要件
---BankAccountクラス内のメソッド(Credit、Debit、Transfer...
---メソッド毎に1つ以上のテストケースを作成し、合計12以上...
---すべてのテストがテスト・エクスプローラーに表示され、メ...
--チャレンジの手順
---ソリューションに xUnit テスト プロジェクトを追加しプロ...
---必要なプロジェクト参照とクラス ファイルを作成、Copilot...
---ソリューションをビルドし、テストがテスト・エクスプロー...
---テストを実行し、必要な数のテストが正常に実行されること...
-Review the "create unit tests" solution 7 min~
「ユニットテストを作成する」ソリューションをレビューする。
--Visual Studio Code環境でサンプルアプリを準備する
---SampleApps.zipのAPL2007M4BankAccountフォルダをVisual S...
---ソリューション・エクスプローラー・ビューからAPL2007M4B...
---[新しいプロジェクトの作成]ダイアログ ボックスで、[xUni...
---プロジェクトにBankAccount.UnitTestsという名前を付けデ...
---UnitTest1.cs ファイルを削除しBankAccount プロジェクト...
---BankAccountTests.csファイルにBankAccount.UnitTestsクラ...
--BankAccountチャットビューを使用してクラスのユニットテス...
---BankAccount.cs ファイルを開きBankAccount クラス全体を...
---チャット・ビューを開き[コンテキストのアタッチ] ボタン...
---チャット・ビューで、/tests(スラッシュ・コマンド)を選...
---[ファイル]メニューで[名前を付けて保存]を選択し、BankAc...
---BankAccountTests.csを選択し、[保存]を選択、既存のファ...
---BankAccountTestsクラスに、BankAccount型のプライベート...
---ソリューションをリビルドし、テストが Visual Studio Cod...
--チャット・ビューを使用して境界値の単体テストケースを作成
---BankAccountTests.cs ファイルを開きBankAccountTests ク...
---チャット・ビューを開き[コンテキストのアタッチ] ボタン...
---次のプロンプトを入力:@workspace #selection Are there ...
---チャット・ビューで、提案された境界値の単体テストケース...
---ファイルを保存、ソリューションをビルド、少なくとも 12 ...
---BankAccountTests.cs ファイルの内容全体を選択し、インラ...
---次のプロンプトを入力:#selection arrange the unit test...
---提案された更新を確認して承認、ファイルを保存し、ソリュ...
--テスト・エクスプローラーを使用してユニットテストを実行
---すべてのテストを実行するには「テストの実行」を選択
---各メソッドの少なくとも 1 つのテストが合格することを確認
***Knowledge check & summary [#h1acdb5b]
-Knowledge check 7 min
--アサーション:ユニットテストにおいて想定される結果と実...
---関数が想定外のデータを受け取らないようにするために使わ...
---入力データの妥当性を確認するものであり、関数の出力結果...
-Summary 3 min
***Exercise [#na1d59e5]
**[[Implement code improvements using GitHub Copilot tool...
GitHub Copilot ツールを使用してコードの改善を実装する
***ユニット [#l42d8e93]
-Introduction 3 min
-Examine GitHub Copilot support for code improvements 6 m...
GitHub Copilotのサポートを検討し、コードを改善
--AI を活用したツールがなければ、コードの改善を実装するに...
--Copilot Chat によるコードの改善
---効果的なプロンプトを作成するための知識と能力は必要
---提案された更新を評価して実装する知識と能力は必要
---焦点を当てるコード改善のカテゴリ:品質、信頼性、性能、...
--コード品質の改善~
リファクタリング、デザイン パターン、コード スタイル強化...
---プロンプト:「Userクラスのモジュール性を高めるためにリ...
---プロンプト:「クラスの内部構造を改善するためのOrderSer...
---プロンプト:「ProductControllerクラスを読みやすくする...
--コードの信頼性の向上~
エラー処理、入力検証、例外処理でエッジケースや予期しない...
---プロンプト:「クラスに対して、より適切なエラー処理戦略...
---プロンプト:「LoginForm無効なユーザー入力を防ぐために...
---プロンプト:「クラス内の例外処理を強化してDatabaseConn...
--コードパフォーマンスの改善~
アルゴリズム最適化、メモリ使用量の削減、コード実行の効率...
---プロンプト:「パフォーマンスを向上させるために、Produc...
---プロンプト:「ImageProcessingクラス内のメモリ使用量を...
---プロンプト:「SearchServiceクラスの効率を改善して、検...
--コードセキュリティの改善
データ暗号化の強化、安全な認証メカニズム、セキュリティ脆...
---プロンプト:「ユーザー パスワードを保護するために、ク...
---プロンプト:「LoginService不正アクセスを防ぐために、ク...
---プロンプト:「一般的なセキュリティの脆弱性を防ぐために...
--Visual Studio Code で Copilot ツールにアクセスする~
・コード行補完、インライン・チャット、チャット・ビュー、...
・改善のための柔軟なプロンプトを入力できるチャット・ビュ...
・チャット・ビューはコード改善のための評価に役立ち、イン...
---チャット・ビュー~
・提案には、コードベースの改善に役立つ「自然言語応答」と...
・「自然言語応答」では、提案された更新を実装する方法につ...
・「コード・スニペット」では、コードを変更する方法の具体...
・提案を確認し、その関連性を評価し、目標に合致する「コー...
---インライン・チャット~
・提案は、エディタ上で直接表示され、提案は、自然言語によ...
・別のパネルに切り替えることなく、コードをどのように改善...
***Exercise [#g3ee0794]
-Exercise - Improve code quality by using GitHub Copilot ...
演習 - GitHub Copilot Chat を使ってコードの品質を向上させる
--コードリファクタリングと高品質コード
---外部の動作を変更せずに既存のコードを再構築するプロセス
---コードベースの内部構造を改善し、理解、保守、拡張を容易...
---読みやすさの向上、複雑さの軽減、モジュール性の向上、再...
---考慮事項:読み易さ、複雑さの軽減、モジュール性と再利用...
--Visual Studio Code環境でサンプルアプリを準備
---SampleApps.zipのAPL2007M5BankAccountフォルダをVisual S...
---Program.csファイルを開き、コードを確認(銀行口座を作成...
--Copilot Chat のプロンプトを開発する
---チャット・ビューからコンテキストとしてBankAccount.cs ...
---プロンプト:「@workspace /explain How can I improve th...
@workspace /explain [選択したコード] の読みやすさを向上さ...
---プロンプト:「@workspace /explain #selection How can I...
@workspace /explain #selection [選択したコード] の保守性...
---プロンプト:「@workspace /explainHow can I improve the...
@workspace /explain [選択したコード] のモジュール性を向上...
---プロンプト:「#selection How can I refactor the [selec...
#selection [選択したコード] をリファクタリングしてモジュ...
---プロンプト:「@workspace /explain What are some option...
@workspace /explain [選択したコード] を簡素化するためのオ...
--Copilot Chat を使用してコードをリファクタリングする
---Program.cs ファイルに含まれているメソッドを確認
---準備したプロンプトから最初のプロンプトを選択
---改善したいコードを選択し、チャット・ビューを開く
---チャット・ビューで、[コンテキストの添付]ボタンを使用し...
@workspace /explain #selection How can I improve the rea...
@workspace /explain #selection GenerateRandomBalance、Ge...
---生成されたメソッドの読みやすさを向上させる手順~
・Randomオブジェクトを生成する繰り返しコードを別のメソッ...
・GenerateRandomDateOpened メソッドのrange変数名をdaysRan...
・各メソッドの動作を説明するコメントを追加すると、コード...
・GenerateRandomDateOpened メソッドで開始日を何年遡れるか...
・C# では、代入の右側で型が明らかな場合に var キーワード...
---提案された更新を実装~
・ブロック コメントで既存のコードをコメント アウト、~
・チャット・ビューの [カーソル位置に挿入] を使用して提案...
・また、[コピー] オプションを使用して、更新を任意の場所に...
---チャット・ビューで、[コンテキストの添付]ボタンを使用し...
@workspace /explain How can I improve the maintainabilit...
@workspace /explain Main、GenerateRandomBalance、Generat...
---生成されたメソッドの読みやすさを向上させる手順~
・Randomオブジェクトを生成する繰り返しコードを別のメソッ...
・GenerateRandomDateOpened メソッドのrange変数名をdaysRan...
・各メソッドの動作を説明するコメントを追加すると、コード...
・GenerateRandomDateOpened メソッドで開始日を何年遡れるか...
・C# では、代入の右側で型が明らかな場合に var キーワード...
---提案された更新を実装~
・ブロック コメントで既存のコードをコメント アウト、~
・チャット・ビューの [カーソル位置に挿入] を使用して提案...
・また、[コピー] オプションを使用して、更新を任意の場所に...
-Exercise - Improve code reliability and performance by u...
演習 - GitHub Copilot Chat を使ってコードの信頼性とパフォ...
--コードの信頼性と性能
---コードの信頼性を調べる:潜在的な問題 / テスト / 例外処...
---コードの性能を調べる:アルゴリズム最適化 / 不必要な計...
--Copilot Chat を使用したコードの信頼性と性能の向上
---Visual Studio Code環境でサンプルアプリを準備する(Samp...
--Copilot Chat のプロンプトを開発する
---更新するコードよりも高いレベルでスコープ設定された外部...
---スコープ参照(ファイル参照、環境参照)、[コンテキスト...
---意図は明確、簡潔、かつ具体的で改善の種類を指定する必要...
--BankAccountプロジェクトを展開し、BankAccount.csおよびPr...
---プロンプト:「@workspace /explain How can I improve ex...
「@workspace /explain [選択したコード] の例外処理を改善す...
---プロンプト:「@workspace /explain How can I reduce une...
「@workspace /explain [選択したコード] の予期しない問題を...
---プロンプト:「@workspace /explain How can I improve un...
「@workspace /explain [選択したコード] の単体テストのサポ...
---プロンプト:「@workspace /explain How can I avoid futu...
「@workspace /explain [選択したコード] で今後バグや問題が...
---プロンプト:「@workspace /explain How can I improve ex...
「@workspace /explain [選択したコード] の例外処理を改善す...
---プロンプト:「@workspace /explain How can I improve th...
「@workspace /explain [選択したコード] のアルゴリズムまた...
---プロンプト:「@workspace /explain How can I improve pe...
「@workspace /explain [選択したコード] 内の非同期タスクま...
---プロンプト:「@workspace /explain How can I improve un...
「@workspace /explain [選択したコード] の単体テストのサポ...
--Copilot Chat を使用して BankAccount クラスのコード信頼...
---BankAccount.cs の全コードを選択、Program.cs、BankAccou...
@workspace /explain How can I improve exception handling...
---Copilot Chat の「特定の例外を使用する / 例外メッセージ...
---BankAccount.cs の全コードを選択、Program.cs、BankAccou...
@workspace /explain How can I reduce unexpected issues f...
---Copilot Chat の「アカウント タイプに列挙型を使用する /...
---提案の範囲が広い場合、1 つの提案項目を使用して、より具...
@workspace /explain #file:BankAccount.cs How can I impro...
---Copilot Chat の「検証ロジックを部品化 / カスタム検証属...
--Copilot Chat を使用して Program クラスのコードの信頼性...
---Program.cs の全コードを選択、Program.csをコンテキスト...
@workspace /explain How can I improve performance with a...
---Copilot Chat の「async および await キーワードを使用し...
---上記に習い、「asynchronous」→「exception handling」の...
-Exercise - Improve code security by using GitHub Copilot...
演習 - GitHub Copilot Chat を使ってコードのセキュリティを...
--コードセキュリティ
---コードの脆弱性を分析する(領域毎の脆弱性を知る)~
統合ポイント / 内部システム・インシデント / 電子メール / ...
---包括的なアプローチを使用してコードセキュリティを評価す...
安全なコーディングの実践 / コード分析ツール / 依存関係の...
エラー処理 / セキュリティ テスト / コンプライアンス / 教...
---コードセキュリティレビューを実施する(確認する側面)~
正確性 / セキュリティ / 設計エラーまたは制限 / 性能と拡張...
テスト / 一貫性とコード スタイルの規則 / ローカライゼーシ...
---一般的なセキュリティ上の欠陥を検索して理解する~
様々なインジェクションの欠陥 / 認証の不備 / 機密データの...
データ アクセス制御の不備 / 機能レベルのアクセス制御の欠如~
XSS / 安全でないデシリアライゼーション / 不十分なログ記録...
安全でない直接オブジェクト参照 (IDOR) = 機能実装における...
--Copilot Chat を使用してコードセキュリティを向上させる
---Visual Studio Code環境でサンプルアプリを準備する(Samp...
--Copilot Chat のプロンプトを開発する(同上)
---更新するコードよりも高いレベルでスコープ設定された外部...
---スコープ参照(ファイル参照、環境参照)、[コンテキスト...
---意図は明確、簡潔、かつ具体的で改善の種類を指定する必要...
--BankAccountプロジェクトを展開し、BankAccount.csおよびPr...
---プロンプト:「@workspace /explain How can I implement ...
「@workspace /explain [選択したコード] に認証を実装するに...
---プロンプト:「@workspace /explain How can I protect se...
「@workspace /explain [選択したコード] 内の機密データを保...
---プロンプト:「@workspace /explain How can I implement ...
「@workspace /explain [選択したコード] の疑わしいアカウン...
---プロンプト:「@workspace /explain How can I improve th...
「@workspace /explain [選択したコード] の例外処理のセキュ...
---プロンプト:「@workspace /explain How can I improve th...
「@workspace /explain [選択したコード] のセキュリティを向...
---プロンプト:「@workspace /explain How can I improve th...
「@workspace /explain [選択したコード] のセキュリティを向...
--Copilot Chat を使用して BankAccount クラスのコード セキ...
---BankAccount.cs の全コードを選択、Program.cs、BankAccou...
@workspace /explain How can I implement authentication i...
---Copilot Chat の「認証についての」的な提案を確認(大き...
---提案の範囲が広い場合、1 つの提案項目を使用して、より具...
---BankAccount.cs の全コードを選択、Program.cs、BankAccou...
@workspace /Explain How can I update the Program.cs file...
---Copilot Chat の「パスワード認証の実装についての」的な...
---BankAccount.cs の全コードを選択、Program.cs、BankAccou...
@workspace /explain How can I protect account numbers an...
---Copilot Chat の「カプセル化 / 機密データを暗号化 / プ...
--Copilot Chat を使用して Program クラスのコード セキュリ...
---Program.cs の全コードを選択、Program.cs、BankAccount.c...
@workspace /explain How can I improve the security of th...
---Copilot Chat の「安全なパスワードの取り扱い / 暗号化 /...
---Program.cs の全コードを選択、Program.cs、BankAccount.c...
@workspace /explain How can I implement secure exception...
---Copilot Chat の「特定の例外をキャッチ / 例外を安全にロ...
-Exercise - Complete the "app improvement" challenge 20 m...
演習 - 「アプリの改善」課題を完了する
--課題: GitHub Copilot Chat を使用して APL2007M5SalesRepo...
--コーディング環境を準備する
---Visual Studio Code環境でサンプルアプリを準備する(Samp...
--チャレンジ要件
---2 つ以上のプロンプトからの提案を使用して、QuarterlySal...
・レポート テーブルを構築するコードを、DisplayReports と...
・上位 3 つの製品を識別するコードを TopThree という名前の...
---1 つ以上のプロンプトからの提案を使用して、QuarterlyInc...
売上レポートの表示に寄与する少なくとも 3 つのメソッドに対...
---1 つ以上のプロンプトからの提案を使用して、認証されたユ...
・QuarterlySalesReportメソッドへのアクセスを認証されたユ...
・認証されていないユーザーが、売上レポートの生成に使用さ...
---コードを直接記述せずCopilotの提案を使用。
---Copilot が問題を修正できない場合、提案コードの更新での...
--チャレンジの手順(割愛)
-Review the "app improvement" solution 8 min~
「アプリの改善」ソリューションをレビュー(前のセクション...
--コード品質の改善
---QuarterlySalesReportメソッドのモジュール性を向上させる...
@workspace #selection Extract the code that builds repor...
---上位 3 つの製品を識別するコードを TopThree という別の...
@workspace #selection Extract the code that identifies t...
--コードの信頼性の向上
---QuarterlyIncomeReportクラスの売上レポートの表示に寄与...
@workspace #selection Implement error handling for the s...
--コードセキュリティの改善
---QuarterlySalesReportメソッドへのアクセスを認証されたユ...
@workspace #selection Restrict access to the **Quarterly...
***Knowledge check & summary [#qfce705d]
-Knowledge check 8 min
-Summary 3 min
***Exercise [#y25d6034]
**[[Guided project - Accelerate app development using Git...
ガイド付きプロジェクト - GitHub Copilot ツールを使用して...
***ユニット [#t61378a0]
-Introduction 2 min
-Prepare the development environment 6 min~
開発環境の準備
--プロジェクト概要
---事故で図書館のサーバーが損傷し、修復には数週間かかるた...
---最小限の機能として、本の貸し出し・返却を提供するコンソ...
---最初は2人で作業し、あなたは図書館の記録をもとにJSONデ...
---安全で信頼できるシステムが求められ、1日後にバージョン1...
---GitHub Copilotを活用し、将来的には拡張も視野に入れてい...
--プロジェクト開発環境の設定
---ローカル PC またはホストされた環境で実行できる
---セットアップ プロセスには、次の手順が含まれる。~
・リソース要件を確認~
・コーディング ツールをインストールまたは更新~
・Visual Studio Code 拡張機能を構成~
・同僚が開発したライブラリ アプリケーション コードをダウ...
--リソース要件~
開発環境には次のソフトウェアがプロビジョニングされたロー...
---Git バージョン管理ソフトウェア
---.NET SDK 8.0 (または最新の LTS バージョン)。
---Visual Studio Code、C# Dev Kit 拡張機能(MS)、GitHub ...
---アクティブな GitHub Copilot サブスクリプションを持つ G...
--コーディングツールをインストールまたは更新する
---Git バージョン管理ソフトウェアをインストール/更新
---.NET SDK 8.0 または最新の LTS バージョンをインストール...
---最新バージョンの Visual Studio Code をインストール/更新
--Visual Studio Code を構成する
---Visual Studio Code の C# Dev Kit と GitHub Copilot 拡...
---Visual Studio Codeでライブラリアプリケーションを設定する
--Visual Studio Codeでライブラリ・アプリケーションを設定
---同僚がライブラリ アプリケーションの初期バージョンを開...
https://raw.githubusercontent.com/MicrosoftLearning/APL-2...
---ダウンロードしたGuidedProjectApp.zipを右クリックし、[...
---[完了時に抽出されたファイルを表示する]を選択し、[抽出]...
---抽出したGuidedProjectAppフォルダーを、Windows デスクト...
---Visual Studio Code でAccelerateDevGitHubCopilotフォル...
---ソリューション・エクスプローラー・ビューで、Accelerate...
--ソリューション構造
AccelerateDevGitHubCopilot\
├src\
│├Library.ApplicationCore\
│├Library.Console\
│└Library.Infrastructure\
└tests\
└UnitTests\
***Exercise [#je2cb0d1]
-Exercise - Analyze and document code using GitHub Copilo...
演習 - GitHub Copilot ツールを使用してコードを分析し、文...
--ライブラリアプリケーションのコードベースを調べる
GitHub Copilotを使用してライブラリアプリケーションのコー...
---AccelerateDevGitHubCopilotVisual Studio Code でソリュ...
---チャット ビューを開き、次のプロンプトを入力
@workspace Describe this project
---回答を確認(プロジェクトの説明)
---ConsoleApp.csファイルを見つけて開き、チャット・ビュー...
@workspace #editor Describe the ConsoleApp class
---回答を確認(ConsoleAppクラスの説明)
---Program.csファイルを見つけて開き、チャット・ビューを開...
@workspace #editor Describe the Program.cs file
---回答を確認(Programクラスの説明)
---Library.Infrastructureプロジェクト・フォルダを開きチャ...
---次に、JsonData.cs、JsonLoanRepository.cs、JsonPatronRe...
---チャット・ビューに次のプロンプトを入力(スラッシュ・コ...
@workspace /explain Explain how the data access classes ...
---回答を確認(データ アクセス クラスの説明)
---ライブラリ レコードをシミュレートするために使用されるs...
--アプリケーションをビルドして実行する
---ビルド
---CLIを実行(仕様の雰囲気が解る)
--コード用のGitHubリポジトリを作成する
---割愛
---README ファイルのプロジェクト ドキュメントを生成するに...
@workspace Generate the contents of a README.md file for...
---割愛
---Visual Studio Code のソース管理ビューのメッセージ ボッ...
---割愛
-Exercise - Develop code features using GitHub Copilot to...
演習 - GitHub Copilot ツールを使用してコードの機能を開発...
--リポジトリに新しいブランチを作成する(割愛)
--図書館員が本の在庫状況を判断できる機能を開発
---CommonActions.cs ファイルを開き、CommonActions列挙型を...
Update selection to include a new `SearchBooks` action.
---CommonActions列挙型への新しいSearchBooksアクションを追...
---ConsoleApp.cs ファイルを開き、WriteInputOptionsメソッ...
Update selection to include an option for the `CommonAct...
---WriteInputOptionsメソッドへの新しいCommonActions.Searc...
---ConsoleApp.cs ファイルを開き、ReadInputOptionsメソッド...
Update selection to include an option for the `CommonAct...
---ReadInputOptionsメソッドへの新しいCommonActions.Search...
---ConsoleApp.cs ファイルを開き、PatronDetailsメソッドを...
Update selection to add `CommonActions.SearchBooks` to `...
---PatronDetailsメソッドがReadInputOptionsメソッドを呼び...
---ConsoleApp.cs ファイルを開き、PatronDetailsメソッドを...
Update selection to add `CommonActions.SearchBooks` to `...
---PatronDetailsメソッドがReadInputOptionsメソッドを呼び...
---SearchBooksメソッドの処理要件について考えつつ、Console...
---SearchBooksメソッドを選択しインライン・チャットに次の...
Update selection to obtain a book title. Prompt the user...
---ユーザーが指定した本のタイトルを取得するコード更新の提...
---SearchBooksメソッドを選択しチャット・ビューを開き、次...
---次のプロンプトを入力:ファイル内で一致する書籍のタイト...
@workspace Explain how to update the `SearchBooks` meth...
---ファイル内で一致する書籍のタイトルを検索し、その書籍が...
・ステップ1: JsonDataクラスにタイトルで書籍を検索するSear...
・ステップ2: ConsoleAppクラスのSearchBooksメソッドを更新...
・ステップ3: Program.csを更新してJsonDataをConsoleAppに渡...
---SearchBooksメソッドを選択しチャット・ビューに次のプロ...
Explain the LINQ queries and the evaluation of the book'...
---生成結果を客員し実装に問題がないことを確認する(非手続...
---ソリューション・エクスプローラー・ビューで、ソリューシ...
---新しい機能によって書籍の在庫状況が正しく判断されること...
---変更をリモートリポジトリにプッシュし、プル リクエスト...
---GitHub Copilot Enterprise をサブスクリプションしている...
(色々調べると、GitHub Copilot ではなくOpenAIを使用するこ...
-Exercise - Develop unit tests using GitHub Copilot tools...
演習 - GitHub Copilot ツールを使用してユニットテストを開...
--UnitTestsプロジェクトによって実装されたユニットテストへ...
---チャット・ビューを開き、次のファイルをコンテキストに追...
---次のプロンプトを入力:ワークスペースのコンテキストでユ...
@workspace Explain the approach to unit testing that's b...
---次のプロンプトを入力:ワークスペースのコンテキストでユ...
@workspace What are the benefits of this approach to uni...
---チャット・ビューを開き、次のファイルをコンテキストに追...
---次のプロンプトを入力:ワークスペースのコンテキストでユ...
@workspace How can I extend the `UnitTests` project to b...
--UnitTestsプロジェクトを拡張してデータアクセスクラスのテ...
---チャット・ビューを開き、UnitTests.csprojファイルをコン...
---次のプロンプトを入力:ワークスペースのコンテキストでテ...
@workspace Explain how to add a reference to the Library...
---GitHub Copilot の応答を使用して、UnitTests.csproj ファ...
---チャット・ビューを開き、次のファイルをコンテキストに追...
---次のプロンプトを入力:ワークスペースのコンテキストでJs...
@workspace Create fields and a class constructor for the...
---GetLoanTestクラスの実装をGetLoan.csファイルに対して行...
---チャット・ビューを開き、次のファイルをコンテキストに追...
---次のプロンプトを入力:ワークスペースのコンテキストでJs...
---GetLoan.csファイルの内容を選択し、チャット・ビューに次...
@workspace Update the selection to include a unit test f...
---GetLoan.csファイルのGetLoanTestクラスにテストのGetLoan...
---上記で作成されたメソッドの下に空行を作成すると、ローン...
---loanIdデータ セットにない値を割り当てる自動補完の提案...
--作業を確認する~
上記で実装したテストをテスト・エクスプローラー・ビューか...
-Exercise - Refactor and improve code sections using GitH...
演習 - GitHub Copilot ツールを使用してコードセクションを...
--GitHub Copilot を使用して EnumHelper クラスをリファクタ...
fieldInfo.GetCustomAttributesがリフレクションで処理が遅い...
---ソリューション・エクスプローラー・ビューを使用して、En...
---チャット・ビューを開き、次のファイルをコンテキストに追...
---次のプロンプトを入力:リフレクションではなく辞書を使用...
@workspace I want to refactor the `EnumHelper` class usi...
---必要に応じて次のプロンプトを入力:ディクショナリの enu...
@workspace Use the description values in LoanExtensionSt...
@workspace Use the description values in LoanReturnStatu...
@workspace Use the description values in MembershipRenew...
---生成されたコードにラムダ式が含まれるのでコードをリファ...
--LINQを使用するようにデータアクセスメソッドを更新する
---JsonData.cs のメソッドをリファクタリングして LINQ を使...
---インライン・チャットを開き、次のプロンプトを入力:#sel...
---提案された更新を[承認]を選択して承認する。
---同じアプローチで、GetPopulatedLoan、GetPopulatedBookIt...
---JsonData.cs ファイルを開きGetPopulatedLoan or GetPopul...
---インライン・チャットを開き、次のプロンプトを入力:選択...
#selection refactor selection to `return new Loan` using...
#selection refactor selection to `return new BookItem` u...
#selection refactor selection to `return new Book` using...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
--JsonLoanRepository.cs のメソッドをリファクタリングして ...
---JsonLoanRepository.csファイルを開き、GetLoanメソッドを...
#selection refactor selection using LINQ with `_jsonData...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
---JsonLoanRepository.csファイルを開き、UpdateLoanメソッ...
#selection refactor selection using LINQ find an existin...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
--JsonPatronRepository のメソッドをリファクタリングして L...
---JsonPatronRepository.csファイルを開き、SearchPatronsメ...
#selection refactor selection using LINQ with `_jsonData...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
---JsonPatronRepository.csファイルを開き、GetPatronメソッ...
#selection refactor selection using LINQ with `_jsonData...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
---JsonPatronRepository.csファイルを開き、UpdatePatronメ...
#selection refactor selection using LINQ to find `patron...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
--作業を確認する~
上記で実装したプロジェクトをビルド・実行し、仕様通りに動...
***Knowledge check & summary [#h1c0a424]
-Knowledge check 5 min
-Summary 2 min
***Exercise [#r329bad3]
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>GitHub資格Copilot]]
--[[GitHub Copilot - 学習ガイドPDF]]
--GitHub Copilot MS Learn Collections
--[[GitHub Copilot模擬試験]]
* 目次 [#d5271c83]
#contents
*概要 [#jb3afd19]
- GitHub Copilot の基礎 - AI ペア プログラマーの理解~
https://learn.microsoft.com/en-us/training/paths/copilot/
**[[Responsible AI with GitHub Copilot>https://learn.micr...
GitHub Copilot による責任ある AI
***ユニット [#h30ee971]
-Introduction 3 min
-Mitigate AI risks 3 min~
AIリスクの軽減
-Microsoft and GitHub's six principles of responsible AI ...
マイクロソフトとGitHubの責任あるAIの6原則
--公平性: AI システムはすべての人を公平に扱う必要がありま...
--信頼性と安全性: AI システムは信頼性と安全性を備えて動作...
--プライバシーとセキュリティ: AI システムは安全でプライバ...
--包括性: AI システムはすべての人に力を与え、人々を関与さ...
--透明性: AI システムは理解可能でなければなりません。
--説明責任: 人々は AI システムに対して説明責任を負うべき...
※ AI-900と同じ内容
***Knowledge check & summary [#wcb5209a]
-Knowledge check 3 min
-Summary 3 min
**[[Introduction to GitHub Copilot>https://learn.microsof...
GitHub Copilotの紹介
***ユニット [#ie24bc7b]
-Introduction 1 min
-GitHub Copilot, your AI pair programmer 2 min~
GitHub Copilot、あなたのAIペアプログラマー
--GitHub Copilot features
---Copilot for chat
---Copilot for pull requests
---Copilot for the CLI
--Subscription plans
---GitHub Copilot Business~
社内で GitHub Copilot を使用できるユーザーを制御
---GitHub Copilot Enterprise~
・GitHub Enterprise Cloud を通じて組織で利用~
・GitHub Copilot Business+組織向けのパーソナライゼーショ...
-Interact with Copilot 2 min~
Copilotとの対話
--Inline suggestions
--Multiple suggestions
--Inline chat
--Copilot chat
--Command palette(VScodeの機能ではなく、Copilot拡張でエ...
--Comments to code
--Explanations
--Automated test generation
-Set up, configure, and troubleshoot GitHub Copilot 7 min~
GitHub Copilotのセットアップ、設定、トラブルシューティング
--Copilotにサインアップ
--VS Code で Copilot を構成する
---Copilot 用の VS Code 拡張機能を追加する
---VS Code で Copilot を有効または無効にする
---VS Code でインライン提案を有効または無効にする
--VS Code で Copilot のトラブルシューティングを行う
***Knowledge check & summary [#j431adc0]
-Knowledge check 5 min
-Summary 1 min
***Exercise [#e3bca2c6]
-Exercise - Develop with AI-powered code suggestions by u...
演習 - GitHub CopilotとVS Codeを使って、AIによるコード提...
>https://github.com/skills/getting-started-with-github-co...
**[[Introduction to prompt engineering with GitHub Copilo...
GitHub Copilot を使用したプロンプトエンジニアリングの紹介
***ユニット [#z1256d1a]
-Introduction 2 min
-Prompt engineering foundations and best practices 7 min~
迅速なエンジニアリングの基礎とベストプラクティス
--プロンプトエンジニアリングとは
--迅速なエンジニアリングの原則
---Single(単一)
---Specific(具体的)
---Short(短い)
---Surround(囲う)
--迅速なエンジニアリングのベストプラクティス
---十分な明確さを提供する
---詳細を十分に伝える
---学習のための例を提供する
---アサートと反復
--Copilotがプロンプトから学習する方法
---Zero-shot learning
---One-shot learning
---Few-shot learning
-GitHub Copilot user prompt process flow 5 min~
Copilot がユーザーのプロンプトからコード提案するまでのす...
--インバウンドフロー:~
---1. 安全な迅速な伝送とコンテキスト収集~
エディタで開いているタブの周囲のコード、ファイル、コンテ...
---2. プロキシフィルター~
プロンプトインジェクションなどのブロック
---3. 毒性フィルタリング~
生成内容に問題や個人データが入らないようにフィルタリング
---4. LLMによるコード生成
--アウトバウンドフロー:~
---5. 後処理と応答の検証~
コード品質、一致する公開コード (オプション) のチェック
---6. 提案の伝達とフィードバックループの開始~
ユーザーのアクションに基づいて学習/改善
---7. 以降繰返しコード生成機能を改良。
-GitHub Copilot data 4 min~
GitHub Copilot のデータ
--GitHub Copilot コード提案のデータ処理~
エディタのCopilot は、プロンプトを保持しない。
--GitHub Copilot チャットのデータ処理~
---フォーマット:生成された応答を細心の注意を払ってフォー...
---ユーザー エンゲージメント:チャット インターフェイスは...
---データ保持:入出力からコンテキストを 28 日間保持
--GitHub Copilot Chat でサポートされているプロンプトの種類
---直接的な質問:問題に関する具体的な質問
---コード関連のリクエスト:生成、変更、説明
---自由形式の質問:概念を探ったりガイダンスを求めたり。
---コンテキスト プロンプト:カスタマイズされたサポートを...
--限定されたコンテキストウィンドウ
---4k トークンのコンテキスト ウィンドウで動作
---通常、約 200-500 行のコードまたは最大数千のトークンの...
---プロンプトを作成するときはコンテキスト ウィンドウの制...
-GitHub Copilot Large Language Models (LLMs) 4 min~
GitHub Copilot大規模言語モデル(LLM)
---GitHub CopilotにおけるLLMによるコーディングに関する提案
---LoRA(フルファインチューニングより軽量な代替手段)の微...
***Knowledge check & summary [#a71989c0]
-Knowledge check 6 min
-Summary 2 min
**[[Using advanced GitHub Copilot features>https://learn....
高度なGitHub Copilot機能の使用
***ユニット [#k36ca717]
-Introduction 1 min
-Advanced GitHub Copilot features 2 min~
GitHub Copilotの高度な機能
--The basics~
ゴースト テキストは無視するか、Tabキーを押して受け入れ。
--Chatting~
左側のサイドバーにあるチャット アイコンで左ペインにインタ...
--Using inline chat~
Windows ではCtrl+iでアクセス
--Slash commands~
[[Command palette(既出)>#ie24bc7b]]と比較し、コーディン...
(GitHub CopilotのSlash commandsは、&color(red){[[GitHub...
--Agents~
@terminal、@workspace、@vscodeなどのコンテキストを使用し...
-Applied GitHub Copilot techniques 3 min~
GitHub Copilotの応用テクニック
--暗黙のプロンプト:inline chat+Slash commands~
コマンドの後ろにプロンプトを入力しないコマンド(実際は、...
--選択的コンテキスト:Agents
***Exercise [#pa7daebd]
https://github.com/codespaces/new/MicrosoftDocs/mslearn-a...
-Exercise - Set up GitHub Copilot to work with Visual Stu...
演習 - Visual Studio Codeで動作するようにGitHub Copilotを...
-Exercise - Update a web API with GitHub Copilot 5 min~
演習 - GitHub Copilot を使ってウェブ API を更新する
--インライン・チャットで新しいルートを追加する
Create a new route that exposes the cities of a country/...
--スラッシュ・コマンドを使用してテストを作成する
/tests help me to create a new test for this route that ...
--エージェントを利用してドキュメントを作成する
@workspace I want to document how to run this project so...
***Knowledge check & summary [#ia6bf92c]
-Knowledge check 5 min
-Summary 1 min
**[[GitHub Copilot Across Environments: IDE, Chat, and Co...
環境をまたぐ GitHub Copilot: IDE、チャット、コマンドライ...
***ユニット [#jc4b15f9]
-Introduction 3 min
-Code completion with GitHub Copilot 6 min~
GitHub Copilotによるコード補完
--サポート言語:Python、JavaScript、Java、TypeScript、Rub...
--インテリセンス:自動提案、複数の提案パネル(Windows or ...
--活用ポイント:メソッドの実装、命名規則、書式設定、コメ...
--コメントを組み込んで提案を強化
---自然言語で書かれたコメントからコンテキストを分析して理解
---様々な種類のコメント:インライン、ブロック、TODOコメン...
---コメント駆動型コード生成:関数実装、コード補完、変数命...
-GitHub Copilot Chat 9 min
--シナリオ
---複雑なコード生成
---デバッグ支援
---コードの説明
--応答改善方法
---スコープ参照:ファイル参照(#file コマンド)、環境参照...
---スラッシュ・コマンド:クエリの意図を素早く指定(生成:...
---スラッシュ・コマンドとスコープ参照と環境参照(Agents?...
-フィードバック共有
--提案にマウス カーソルを合わせると、賛成ボタンと反対ボタ...
--提案が役に立ったと評価、👍️、役に立たなかったと評価👎
-GitHub Copilot for the Command Line 5 min~
コマンドラインのGitHub Copilot
--シェル用のGitHub Copilot(コマンド)
gh copilot xxx(ghcx)
---エイリアス設定が可能(後述)
gh copilot explain → ghce
gh copilot suggest → ghcs
---コマンドの説明を取得
gh copilot explain "sudo apt-get"
---コマンドの提案を取得
gh copilot suggest "Undo the last commit"
---提案されたコマンドの実行~
ghcsで、Execute commandオプションを選択
ghcs "What command to see running docker containers"
Suggestion:
sudo launchctl list
?Select an option
>Execute command
?Are you sure you want to execute the suggested command?
> Yes
Password:
PID Status e...
---提案されたコマンドを修正~
ghcsで、Revise commandオプションを選択
Suggestion:
docker ps
?Select an option
>Revise command
?How should this be revised?
>Make sure it includes both running and stopped containers
Suggestion:
docker ps -a
--設定オプション
---エイリアス設定: gh copilot explain → ghce、gh copilot...
---フィードバック:提案を改善するためにユーザーからのフィ...
---組織設定:管理者は特定の機能へのアクセスを有効または無...
---データ処理:使用状況データを保持して製品の改善に使用す...
***Knowledge check & summary [#r4d009c8]
-Knowledge check 15 min
-Summary 5 min
**[[Management and customization considerations with GitH...
GitHub Copilot の管理とカスタマイズに関する考慮事項
***ユニット [#l1eee640]
-Introduction 2 min
-Explore GitHub Copilot plans and their associated manage...
GitHub Copilotのプランと、関連する管理およびカスタマイズ...
--管理ポリシー機能
---Free & Pro:パブリックコードフィルターのみ有り
---Business :GitHub Enterprise Cloud不要(カスタマイズ...
---Enterprise:GitHub Enterprise Cloud必要(すべての機能...
--カスタマイズ機能
---Free & Pro & Business:チャットで組織コード、組織KBをR...
---Enterprise:すべての機能をサポート(GitHub Enterprise ...
--組織の料金プラン選択に重要な要素
---Business/Enterpriseは、より強力なプライバシー制御を提供
---Business/Enterpriseは、機密データを組織のプライバシー ...
---データの収集と保持:Copilotがプロンプトと提案を収集し...
---IP補償とデータ プライバシーは、法的、セキュリティ、顧...
-Explore contractual protections in GitHub Copilot and di...
GitHub Copilotにおける契約上の保護と、公開コードとのマッ...
--IP(知的財産)補償:Business/Enterprise プランでは提案...
--一致する公開コード設定をブロックする設定は、GitHubプロ...
--データ保護契約 (DPA):データ プライバシー規制への準拠を...
--Copilot トラスト センター:Copilot の仕組みに関する詳細...
-Manage content exclusions 7 min~
コンテンツ除外の管理
--コンテンツ除外がコード提案に与える影響
---当該ファイルではコード補完は利用できなくなる。
---当該ファイルの内容は、他のファイルのコード補完の提案に...
---当該影響を受けるファイルの内容は、Copilot Chat の応答...
--コンテンツ除外の設定方法
---組織のコンテンツ除外を設定する:一致する公開コード設定...
---リポジトリのコンテンツ除外を構成:リポジトリのsettings
--コンテンツ除外の制限
---IDEの制限:一部の統合開発環境 (IDE) ではコンテンツの除...
---セマンティック情報:除外されていないファイルから除外さ...
---ポリシー範囲:コンテンツ除外設定は、コンテンツ除外を構...
-Troubleshoot common problems with GitHub Copilot 5 min~
GitHub Copilotのよくある問題のトラブルシューティング
--コードの提案がありません
---インターネット接続を確認
---Copilot 拡張機能を更新
---IDEの互換性を確認
---コンテンツの除外を確認
--コンテンツの除外が期待どおりに機能しない
---除外の遅延適用
---ポリシー範囲が不十分
---IDE固有の制限
--コードの提案が不十分
---明確なコンテキストを提供
---Copilotコマンドの使用
---プロンプトの長さを調整
***Knowledge check & summary [#kb2a527a]
-Knowledge check 5 min
-Summary 1 min
*詳細 [#o331b27e]
- GitHub Copilot を使用してアプリケーション開発を加速させ...
https://learn.microsoft.com/en-us/training/paths/accelera...
※ 以下、[[概要(GitHub Copilot の基礎 - AI ペア プログラ...
**[[Get started with GitHub Copilot>https://learn.microso...
GitHub Copilotを使い始める
***ユニット [#h4577c8b]
-Introduction 3 min
-Examine AI tools from GitHub, OpenAI, and Microsoft 10 m...
GitHub、OpenAI、マイクロソフトのAIツールを検証する
--[[Azure AI services>Azure AI 資格(AI-900)#x67652cb]]
---[[Azure AI Foundry(元Azure AI Studio)>Azure AI 資格...
---[[Copilot Studio>Azure AI 資格(AI-900)#c2e14544]]
--[[AI Builder(Microsoft Power Platformの機能)>Microsof...
--Semantic Kernel SDK(Microsoft が OSS として発表したLLM...
--Visual Studio IntelliCode(次世代の開発効率化のためのAI...
--ChatGPT
--GitHub Copilot
-Examine GitHub Copilot tools, benefits, and limitations ...
GitHub Copilotのツール、利点、制限を調べる
--プロフェッショナル向けツールと機能
---GitHub Copilot Pro
IDEでのコード補完、Copilot Chatとその活用スキル
Copilot Chat(CLI、Mobile、GitHub (GitHub.com) 、Windows...
公開コードに一致する提案をブロック、プルリクエスト・サマリ
---GitHub Copilot Business
指定ファイルをCopilotから除外、
組織全体のポリシー管理
監査ログ、GitHub モデルのレート制限が引き上げ
---GitHub Copilot Enterprise
GitHub Copilot Business で提供される全機能
知識ベース(RAG)、微調整(LoRA)
--制限
---限定された範囲:複雑なコード構造やあまり知られていない...
---潜在的なバイアス:トレーニング データにバイアスが存在...
---セキュリティリスク:慎重に使用しないと、機密情報や脆弱...
---公開コードと一致する:トレーニング セットのコードと一...
---不正確なコード:意味的/構文的に正しくない無効なコード...
---コーディング以外のトピックに対する不正確な応答:コーデ...
-Examine the autocomplete features of the GitHub Copilot ...
GitHub Copilot 拡張機能のオートコンプリート機能を検証する
--オートコンプリート(コード補完)の提案候補を生成
---「int addInt(」と書くと、後続のメソッドのシグネチャと...
---もう少し複雑な「int addPrimeNumbersInNumericList(」と...
---Tab キーで受入後、addPrimeNumbersInNumericListメソッド...
--オートコンプリート(コード補完)の提案候補を管理
---[承認]を選択して、提案を(完全に)承認(ショートカット...
---「単語を受け入れる」を選択して、提案を部分的に受入(シ...
---「単語を受け入れる」の右側にある省略記号 (...) から「...
「行を受け入れる」:候補の行全体を受入、「常にツールバー...
---「<」/「>」を選択して代替候補を表示(ショートカットは...
--コメントからコードの提案を生成する
---コメントを入力し始めると、Copilot はコメントと周囲のコ...
// create a list of 100 random numbers between 1 and 1800
---コメントを書き続けると、Copilot はオートコンプリートの...
List<int> numbers = new List<int>();
Random random new Random();
for (int i = 0; i < 100; i++)
{
numbers.Add(random.Next(1, 1000));
}
Int sum addPrimeNumbersInNumerictist(numbers);
--提案タブを使用して複数の提案を表示
---最初のオートコンプリートの提案に満足できない場合、タブ...
---「補完パネルを開く」:[補完パネルを開く]を選択(ショー...
---提案を受け入れるには例えば最初の「suggestion 1」の下の...
-Examine the AI assistance features of the GitHub Copilot...
GitHub Copilot Chat拡張機能のAI支援機能を検証する
--Copilot Chat のユースケース
---コードの説明と文書化
---コーディングに関する質問への回答
---エラーや問題のコンテキストに基づいて解決策&スニペット...
---メソッドのシグネチャと本体に基づいて、ユニット テスト ...
---既存のコードベースの(品質、信頼性、性能、セキュリティ...
--Visual Studio Code での Copilot チャット
---チャット・ビュー(メニュー・バーにある[チャットを開く]...
「in the selected code, what does sum represent?」などと...
---インライン・チャット(コンテキスト・メニューの[Copilot...
・エディターにインラインのインターフェイスが表示され、そ...
・前述のnumbers生成コードを選択肢た状態で、インラインのイ...
「Update this code to ensure that numbers doesn't inclu...
・選択中のコードを更新する提案を「受入」「破棄」「再実行...
---クイック・チャット(VSCのコマンド パレットでChat: Open...
エディタの上部に表示されるチャット・ビューで、インライン...
---スマート・アクション(コンテキスト・メニューから選択)~
・説明(Explain):選択したコードの自然言語による説明を生...
・修正(Fix):選択したコードの修正を提案。~
・レビューとコメント(Review and Comment):選択したコー...
・ドキュメントの生成(Generate Docs):選択したコードのド...
・テストの生成(Generate Tests):選択したコードの単体テ...
・場合によって[レビューとコメント]→「修正」のようにスマー...
---Copilot Chatでのプロンプト構築~
・冒頭で使用する環境参照(@workspace、@vscode、@terminal)~
・冒頭で使用するスラッシュ・コマンド(/clear、/new、/help...
・環境参照とスラッシュ・コマンドは組み合わせるときは「@wo...
・プロンプト中でチャット変数(#editor、#selection、#file...
***Exercise [#g00140c7]
-Exercise - Install GitHub Copilot extensions for Visual ...
エクササイズ - Visual Studio Code用のGitHub Copilot拡張機...
--Copilotサブスクリプションを設定
---個人の GitHub アカウントを使用して、GitHub Copilot Pro...
(月間/年間/30日間の、2,000回のコード自動補完と50件のチャ...
---教育者、学生、および選ばれたオープンソースのメンテナー...
---GitHub アカウントが組織を通じてライセンスされている場...
--Visual Studio Code 用の Copilot 拡張機能を設定
---Visual Studio Codeと、Copilot、Copilot Chat 拡張機能を...
---Visual Studio Code から GitHub にサインイン(Visual St...
-Exercise - Configure GitHub Copilot extensions for Visua...
練習 - Visual Studio Code用のGitHub Copilot拡張機能を設定...
--Copilotを有効または無効にする
---Visual Studio Code で、拡張機能ビューを開く
---インストールされている拡張機能のリストで、Copilotを見...
---Copilot 拡張機能の歯車アイコンから有効化と無効化のオプ...
--Visual Studio Code で Copilot と Copilot Chat を構成
---インストールすると、デフォルト設定で構成される。
---拡張機能の設定にアクセスする方法~
・Manageアイコンを使用して、Visual Studio Code の設定タブ...
・Copilot ステータス アイコンを使用して Copilot ステータ...
---Copilot拡張機能の設定を構成~
・利用可能な設定のリストを確認し「拡張機能」ラベルの下で...
・Copilot の設定には次のオプションが含まれる(自動補完を...
・「拡張機能」ラベルの下で、2 番目の Copilot 拡張機能を選...
・Copilot Chat の設定には、プレビューと実験的なオプション...
---GitHub.com で Copilot 設定を構成~
・個人アカウント、組織アカウントを通じて管理できる。~
・サブスクリプション管理、プロンプトと提案の保持の構成、...
---Copilot のキーボードショートカット~
・Visual Studio Code でデフォルトのキーボード ショートカ...
・キーボード ショートカット エディターで特定のコマンド毎...
***Knowledge check & summary [#bd4af56e]
-Knowledge check 10 min
--Copilot は開発者に提案を提供することでの生産性を向上さ...
--オートコンプリートには受入、破棄、代替の3つのオプショ...
--環境参照(@workspace、@vscode、@terminal)でコンテキス...
--テストコード生成:✗「ユーザーの個人的なコーディング ス...
--言語サポートは既定で全て有効で、plaintext、markdownは無...
-Summary 2 min
**[[Generate documentation using GitHub Copilot tools>htt...
GitHub Copilot ツールを使用してドキュメントを生成する
***ユニット [#n9f31b73]
-Introduction 3 min
-Examine the "document" and "explain" features of GitHub ...
GitHub Copilot Chatの「ドキュメント」と「説明」機能を調べる
--Visual Studio Code で Copilot Chat にアクセスする~
チャット・ビュー:、インライン・チャット、スマート アクシ...
--Copilot Chat を使用して説明を生成する~
プロンプト作成には、環境参照、スラッシュ・コマンド、チャ...
---チャット・ビュー:@workspace /explain Explain this pro...
---チャット・ビュー:@workspace /explain Explain the depe...
---チャット・ビュー:@workspace /explain #file:program.cs...
---インライン・チャット:/explain #selection Explain how ...
---インライン・チャット:/explain Explain this code block
---チャット・ビューよりインライン・チャットの方がスコープ...
--Copilot Chat を使用してドキュメントを生成する
---インラインド・キュメントを生成する~
・Copilot Chat~
・インライン・チャットに/docコマンドを入力~
・Generate Docsスマート・アクションを使用して選択したコー...
---ワークスペース全体のプロジェクト・ドキュメント
@workspace Generate a project summary that can be used a...
@workspace Generate a readme markdown document that can ...
---Copilot Chat の出力を確認して修正する。~
・出力の正確性と完全性を確認~
・プロンプト(コードや質問)と一致していることを確認~
・エラーや不正確な部分を修正し、コードの動作と目的が正確...
・出力に追加情報またはコンテキストを追加して、より包括的...
***Exercise [#me8555c3]
-Visual Studio Code環境でサンプルアプリを準備する
--[[リンク>https://raw.githubusercontent.com/MicrosoftLea...
-Exercise - Generate code explanations using GitHub Copil...
演習 - GitHub Copilot Chatを使ってコードの説明を生成する
--Visual Studio Code でSampleAppsフォルダのAPL2007M2Sampl...
--ワークスペースとプロジェクトファイルの説明
---Visual Studio Code の上部メニューバーで、[チャットを開...
---次のコマンドを使用してプロジェクトの説明を依頼:@works...
---チャット ビューで応答を確認、下部でフォローアップの質...
---MainWindow.xaml.csを開き次のコマンドを使用してファイル...
---チャット ビューで応答を確認、下部でフォローアップの質...
--選択されたコードの説明
---MainWindow.xaml.csファイルがエディターで開いていること...
---下にスクロールしてSumPageSizesAsync()メソッドを見つけ...
---コード行を選択し、「説明」スマート アクションを使用し...
---チャット ビューで応答を確認、説明に含まれる詳細レベル...
--エラーの説明
---MainWindow.xaml.csファイルがエディターで開いていること...
---下にスクロールしてSumPageSizesAsync()メソッドを見つけ...
---マウスカーソルを上に移動するdownloadTasksとエラーメッ...
---エラーを含むコード行を選択し「Ctrl + I」でインライン ...
---チャット ビューで応答を確認、エラーに関する情報と修正...
---Copilot Chat が提供する説明を使用して、コード内のエラ...
--新しい機能の説明
---SumPageSizesAsyncおよびProcessUrlAsyncメソッドを含むコ...
---チャット・ビューで、ダウンロード・プロセス中にスローさ...
@workspace /explain #MainWindow.xaml.cs How can I handle...
---チャット ビューで応答を確認、エラーに関する情報と修正...
---コード スニペットをコピーするか、カーソルの位置にコー...
---インライン チャットの場合、ProcessUrlAsyncメソッドを選...
---「Ctrl+I」で次のプロンプトを入力:How can I handle exc...
---チャット ビューで応答を確認、エラーに関する情報と修正...
---提案されたエラー処理コードを受け入れるには、[受け入れ...
-Exercise - Generate project documentation by using GitHu...
演習 - GitHub Copilot Chat を使ってプロジェクト・ドキュメ...
--Visual Studio Code でSampleAppsフォルダのAPL2007M2Sampl...
--[チャットを開く]を選択しCopilot チャット ビューを開く。
--チャット ビューで、ワークスペースのドキュメントを生成:...
---プロジェクト用に生成されたプロジェクト ドキュメントを...
---「プロジェクトの制約を文書化する」や「プロジェクトの依...
--チャット ビューで、プロジェクトの依存関係を説明するドキ...
---プロジェクトの依存関係のドキュメントを確認
---同様に、プロジェクト概要、要件、制約、アーキテクチャ、...
--チャット ビューでAPL2007M2Sample1プロジェクトの README ...
マークダウン ファイルとしてフォーマットする場合:@workspa...
---APL2007M2Sample1プロジェクト用に生成された README を確認
---いくつかのセクションとともに、プロジェクトの概要を提供...
---プロンプトを調整して、組織で推奨される README セクショ...
-Exercise - Generate inline code documentation by using G...
演習 - GitHub Copilot Chat を使ってインライン・コード・ド...
--Visual Studio Code でSampleAppsフォルダのAPL2007M2Sampl...
--チャット・ビューを使用してインライン・コード・ドキュメ...
---MainWindow.xaml.csファイルを開きファイルの先頭から最後...
---チャットビューを開き次のプロンプトを入力:@workspace #...
---提案されたコードドキュメントを少し時間をかけて確認、推...
---簡潔でコードの一部が省略される場合がある。コード コメ...
--インライン・チャットを使用してインライン・コード・ドキ...
インライン チャットを使用すると、コードにコメントを追加す...
---MainWindow.xaml.csファイルの先頭までスクロールしOnStar...
---インライン・チャットを「Ctrl + I」で開き、次のプロンプ...
---OnStartButtonClickメソッドの2つのパラメタの概要と説明...
---提案を確認し必要に応じて修正する。提案を破棄するには[...
--スマート・アクションを使用してインライン・コード・ドキ...
---Visual Studio コード エディターで、MainWindowクラス内...
---選択したコードを右クリックし「Copilot」→「Generate Doc...
---ドキュメントが生成され、提案された変更を確認、コメント...
---生成されたドキュメントに問題が見つかった場合は、続行す...
---[承諾]を選択、MainWindowクラス内の各メソッドに生成され...
-Exercise – Complete the "code documentation" challenge 1...
演習 - "コード・ドキュメント" の課題を完了する
--Visual Studio Code でSampleAppsフォルダのAPL2007M2Sampl...
--ターミナルでdotnet buildコマンドを実行したときに、プロ...
--注:このプロジェクトは、特殊なランタイム環境を使用するI...
--Visual Studio Code で Copilot Chat を使用して、インライ...
--生成されたドキュメントをレビューして、要件を満たしてい...
--文書化されたコードを保存した後、ターミナルでdotnet buil...
-Review the "code documentation" solution 8 min~
コード・ドキュメント・ソリューションをレビューする
--Visual Studio Code でSampleAppsフォルダのAPL2007M2Sampl...
--Program.cs ファイルのインライン ドキュメント
---Deviceクラスのプロパティとメソッドを含むコード ブロッ...
---チャット・ビューを開き、次のプロンプトを入力:@workspa...
---提案された変更を確認、[エディターで適用]を選択
---コード ファイルの上部で提案された変更がすべて承認され...
--プロジェクトのプロジェクト ドキュメント
---チャットビューを開き次のプロンプトを入力:@workspace d...
---ドキュメントをマークダウンとしてフォーマットするには、...
--プロジェクト リポジトリの README ファイル
---チャットビューを開き次のプロンプトを入力:@workspace g...
---ドキュメントをマークダウンとしてフォーマットするには、...
***Knowledge check & summary [#zb746cdd]
-Knowledge check 8 min
-Summary 3 min
**[[Develop code features using GitHub Copilot tools>http...
GitHub Copilot ツールを使用してコード機能を開発する
***ユニット [#u6d463d1]
-Introduction 3 min
-Examine the code development features of GitHub Copilot ...
GitHub Copilot のコード開発機能を検証する
--Visual Studio Code の Copilot ツール
---コード行補完: コード行補完を使用し、より効率的にコード...
---チャット・ビュー:左側のサイドバーにあるチャット アイ...
---インライン・チャット:エディタから直接インライン・チャ...
---クイック・チャット:簡単な質問をして作業を再開
---スマート・アクション:プロンプトを入力しなくても特定タ...
--Copilot のコード行補完を使用してコードを生成する
---メソッド シグネチャの入力を開始すると、Copilot はコー...
---提案に満足したら、Tab キーを押すか、[承認]を選択する。
---また、メソッドの呼び出しステートメントを入力し始めると...
---また、コードコメントからメソッドのシグネチャと実装の提...
---これにより時間を節約し、コードを正確に記述できる。
--Copilot Chatを使用してコードを生成する
---Copilot Chat は、チャット・インターフェースとスマート...
---例えば、新しいメソッドを作成するように求めるプロンプト...
---提案を確認してから承認または破棄することで、コードの初...
---Copilot Chat に、明確な範囲と意図を含むプロンプトや質...
---会話形式+環境参照、スラッシュ・コマンド、チャット変数...
---例えばスキャフォールディングなどもできる~
・C#:@workspace /new console application in C#~
・JS:@workspace /new Node.js Express Pug TypeScript
--チャット・ビューを使用してコードを生成する
---Visual Studio Code コマンド・センターから[チャットを開...
---さらに画面スペースが必要な場合は、チャット・ビューのコ...
--チャット・ビューで(生成された)コード・ブロックを管理...
---初期オプション:[エディターで適用]、[カーソル位置に挿...
---[その他のアクション (...)]:[ターミナルに挿入] (Ctrl+A...
--インライン・チャットを使用してコードを生成
---エディタで作業しているときに「Ctrl + I」を押しインライ...
---次の方法で使用できる(既存のコードに関する質問、変更ま...
---インラインチャットを使用して新しい機能を作成~
・エディターでコードを選択し「Ctrl + I」を押してインライ...
・作成する機能を説明するプロンプトを入力、提供される提案...
・満足したら、提案を受け入れます。
---インラインチャットを使用して正規表現を作成~
インライン・チャットを使用すると、正規表現をすばやく正確...
・エディターでコードを選択し「Ctrl + I」を押してインライ...
・検証する必要があるデータ・パターン(メアドなど)を説明...
・提案された正規表現を少し評価する
-Examine GitHub Copilot best practices 8 min~
GitHub Copilot のベストプラクティスを検証する
--Visual Studio Code 用の Copilot 拡張機能を使用しベスト ...
--Copilotのインライン提案を最大限に活用
--Copilot にコンテキストを提供する
--コンテキストの定義に役立つファイルを開く。
--コード・ファイルのトップレベルのコメントでコンテキスト...
--適切な包含と参照(作業に必要なインクルードまたはモジュ...
--意味のある関数名、具体的かつ適切な関数コメント
--サンプルコード付きPrime Copilot(探しているものに近いサ...
--(プロンプト、コンテキストの)一貫性を保ち、品質基準を...
--Copilot Chatのエクスペリエンスを最適化するために実行で...
--まずは一般的なことから始めて、具体的な内容に移る
---数が素数かどうかを知らせる関数を書いてください。
---この関数は整数を受け取り、その整数が素数であれば true ...
---入力が正の整数でない場合、関数はエラーをスローする必要...
--Copilot があなたの要求を理解できるように、例を使用(ICL)
--複雑または大規模なタスクを完了させたい場合、より単純な...
---10 x 10 の文字グリッドを生成する関数を記述
---有効な単語のリストが与えられた場合に、文字のグリッド内...
---前の関数を使用して、少なくとも 10 個の単語を含む 10 x ...
---前の関数を更新して、文字のグリッドとグリッドからランダ...
--曖昧さを避ける「これは何をしますか」→「createUser 関数...
--コンテキストや指示を明確にする(ファイルを開く、コード...
--その他
---実験と反復:希望する結果が得られない場合は、プロンプト...
---履歴を関連性のあるものにする:新しい会話を開始する。/c...
---適切なコーディング方法に従う(コンテキストとなる既存の...
・一貫したコード スタイルとパターンを使用~
・変数と関数にはわかりやすい名前を使用~
・コードにコメントを付ける。~
・コードを疎結合&機能的凝集度に保つ。~
・ユニットテストを含める。
***Exercise [#l86e319f]
-Exercise - Create code by using code line completions 14...
演習 - コード行補完を使用してコードを作成する
--Visual Studio Code環境でサンプルアプリを準備する
---Visual Studio Code の新しいインスタンスを開き、チャッ...
---チャット ビューで、次のスキャフォ・プロンプトを入力し...
@workspace /new console application named APL2007M3. Use...
---[フォルダーの選択]ダイアログで[デスクトップ]を選択して...
---新しいプロジェクトを開くように求められたら[開く]を選択
---ソリューション・エクスプローラー・ビューで、Program.cs...
--Copilot を使用してコメントからコード行の補完を生成する。
---Program.csファイルで、Mainメソッドの下に2つの空行を作...
---テスト データを生成するために次のコード コメントを作成...
// public struct SalesData. Include the following fields...
---Copilot が提供するコード補完の提案を確認(データ型に注...
---一部のデータ型が希望するものでなくても、提案された自動...
---また、提案タブを使用して複数の提案を表示したり、一度、...
---SalesData構造体の下に 2 つの空のコード行を作成。
---構造体を使用してテスト・データを生成するSalesDataメソ...
/* the GenerateSalesData method returns 1000 SalesData r...
---Copilot が提供するコード補完の提案を確認(オブジェクト...
---ニーズに最も適した提案を確認して受入(Tabキー)て、必...
---たった 2 つのコメントで構造体とテスト・データを生成す...
--Copilotを使用してコード行補完を生成する。
---QuarterlyIncomeReportクラスのQuarterlySalesReportメソ...
public void QuarterlySalesReport(SalesData[] salesData)
---QuarterlySalesReportの操作について検討(売上データに基...
・コレクションを反復処理しますsalesData~
・salesDataコレクションを反復処理~
・販売数量と単価に基づいて、各販売の価値を計算~
・売上日を使用して、売上がどの四半期に属するかを判断~
・四半期ごとの売上を合計し、売上レポートを作成
---QuarterlySalesReportの先頭でforeachを入力、コード行補...
---提案が不適切だったので、コンテキストとなるコードを調整
---QuarterlySalesReport内の空白行にカーソルを置き、Enter...
---コード行補完の提案を待ち、提案で意図した処理が実行され...
---販売月に基づいて四半期を決定するために使用されるGetQua...
---QuarterlySalesReportの下に2つの空白行を作成するとGetQu...
---(QuarterlySalesReportのコンテキストからGetQuarterのコ...
---提案で意図した処理が実行されることを確認し受入(Tabキ...
---Mainメソッドでは、上記の(略)でQuarterlyIncomeReport...
---Mainメソッドのコードコメント「// call the GenerateSale...
---Copilot によって提案されたコード補完を確認して承認。
---同様に、Mainメソッドのコードコメント「// call the Quar...
---Copilot によって提案されたコード補完を確認して承認。
---アプリを実行してレポート出力を確認(ターミナル ウィン...
---ターミナル・ウィンドウで出力を確認(四半期の結果はラン...
-Exercise - Create code by using GitHub Copilot Inline Ch...
演習 - GitHub Copilot インライン・チャットを使用してコー...
--Visual Studio Code環境でサンプルアプリを準備(SampleApp...
--コーディングタスクとプロジェクト目標を確認する
---SalesData構造体とGenerateSalesDataメソッドを更新して「...
---QuarterlySalesReportメソッドを更新~
・四半期は Q1 から Q4 の順序でリスト~
・地域設定を使用して通貨の値を表示~
・四半期利益と利益率の計算を含める~
・四半期ごとの売上、利益、部門別の利益率を計算
--プロンプトを開発するためのアプローチを検討する~
プロンプトを開発するときは、次のベスト プラクティスに留意
--インライン・チャットを使用してデータ構造を生成する
---SalesData構造体の下の空白行にカーソルを置き、インライ...
I need a public struct ProdDepartments that contains a s...
---提案を確認して受入(Tabキー)
---ProdDepartments構造体の下の空白行にカーソルを置き、イ...
I need a public struct ManufacturingSites that contains ...
---提案を確認して受入(Tabキー)
---SalesData構造体を選択、インライン・チャット(Ctrl + I...
add double field baseCost and int field volumeDiscount t...
---提案を確認して受入(Tabキー)
--インライン・チャットを使用してGenerateSalesDataメソッド...
---Program.csファイルでGenerateSalesDataメソッドを見つけ...
---departmentNameに値を割り当てるコード行を選択、インライ...
Update the departmentName assignment to randomly select ...
---提案を確認して受入(Tabキー)
---departmentNameの割り当て後に 3 つの空白行を作成し次の...
int indexOfDept = 0;
string deptAbb = "";
string firstDigit = "";
string nextTwoDigits = "";
string sizeCode = "";
string colorCode = "";
string manufacturingSite = "";
---「int indexOfDept = 0;」コード行を選択し、インライン・...
Assign the array index for departmentName to indexOfDept.
---期待した提案が表示されないので[破棄]を選択して提案を拒...
Create an int named indexOfDept. Assign the array index ...
---(※ コードを選択せずにインライン・チャットを開くと、Co...
---提案を確認して受入(Tabキー)
---「string deptAbb = "";」コード行を選択し、インライン・...
Use indexOfDept to assign a department abbreviation to d...
---提案を確認して受入(Tabキー)
---「string firstDigit = "";」コード行を選択し、インライ...
Assign indexOfDept + 1 to firstDigit.
---提案を確認して受入(Tabキー)
---「string nextTwoDigits = "";」コード行を選択し、インラ...
Assign a random number 1-99 to nextTwoDigits. Include a ...
---提案を確認して受入(Tabキー)
---「string sizeCode = "";」コード行を選択し、インライン...
From the list {XS, S, M, L, XL}, randomly select a produ...
---提案を確認して受入(Tabキー)
---「string colorCode = "";」コード行を選択し、インライン...
From the list {BK, BL, GR, RD, YL, OR, WT, GY}, randomly...
---提案を確認して受入(Tabキー)
---「string manufacturingSite = "";」コード行を選択し、イ...
Assign a randomly selected manufacturing site to manufac...
---提案を確認して受入(Tabキー)
---「salesData[i].productID = random.Next(1, 101);」コー...
Add a "-" to deptAbb, nextTwoDigits, sizeCode, and color...
---提案を確認して受入(Tabキー)
---unitPriceの割り当てを、25 ~ 300 の範囲を使用するよう...
salesData[i].unitPrice = random.Next(25, 300) + random.N...
---「salesData[i].baseCost」コード行を選択し、インライン...
Discount the unitPrice by a random percentage between 5 ...
---提案を確認して受入(Tabキー)
---「salesData[i].volumeDiscount」コード行を選択し、イン...
Assign 10 percent of quantitySold to volumeDiscount. Tru...
---提案を確認して受入(Tabキー)
--インライン・チャットを使用してQuarterlySalesReportメソ...
---Program.cs ファイルでQuarterlySalesReportメソッドを見...
---メソッド全体を選択し、インライン・チャット(Ctrl + I)...
Update the QuarterlySalesReport method to display quarte...
---提案を確認して受入(Tabキー)、四半期の売上結果が順番...
---メソッド全体を選択し、インライン・チャットを開いて、次...
Update the QuarterlySalesReport method to include calcul...
---提案を確認して受入(Tabキー)、四半期の売上結果に利益...
---メソッド全体を選択し、インライン・チャットを開いて、次...
Update the QuarterlySalesReport method to include calcul...
---提案を確認して受入(Tabキー)、四半期の売上結果に利益...
---メソッド全体を選択し、インライン・チャットを開いて、次...
Update the QuarterlySalesReport method to include calcul...
---提案を確認して受入(Tabキー)、四半期の売上結果に利益...
-Exercise - Complete the create new code challenge 16 min~
エクササイズ - 新しいコードの作成に挑戦する
--コーディング環境はVSCodeでSampleAppsのAPL2007M3SalesRep...
--部門販売情報をフォーマットする
---アプリケーションを実行し、次の「前」の形式を確認
---Copilot Chat を使用して、部門の販売情報をテーブルとし...
「部門別」売上情報をテーブルとしてフォーマットし、テーブ...
---アプリケーションを実行し、更新されたアプリケーションが...
--四半期ごとに上位3件の販売注文を表示する
---アプリケーションを実行し、次の「前」の形式を確認
---Copilot Chat を使用して、四半期ごとの上位 3 つの販売注...
・四半期の上位 3 件の販売注文は、総販売額 (販売個数 * 単...
・四半期売上レポートには、上位 3 つの注文ごとに、製品 ID...
・上位 3 つの販売注文のリストの順序は、利益の降順 (最高か...
・四半期売上レポートでは、上位の販売注文の情報を表形式で...
---アプリケーションを実行し、更新されたアプリケーションが...
-Review the create new code solution 8 min~
新しいコードを作成するソリューションをレビューする
--「部門販売情報のフォーマット」ソリューションを確認する
---Visual Studio Code で Program.cs ファイルを開き
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Update the QuarterlySalesReport method to format the rep...
---提案を確認して受入(Tabキー)
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Use extended ASCII characters to add border lines to the...
---提案を確認して受入(Tabキー)
---Program.cs ファイルへの変更を保存しアプリケーションを...
---必要に応じて、列幅を手動で調整して、データ行の垂直線を...
Console.WriteLine("│ {0,-20} │ {1,18} │ {2,18} │ {3,18} ...
Console.WriteLine("│ {0,-20} │ {1,18} │ {2,18} │ {3,17}%...
--「四半期ごとに上位 3 つの販売注文を表示する」ソリューシ...
---Visual Studio Code で Program.cs ファイルを開き
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Update the QuarterlySalesReport method to include calcul...
---提案を確認して受入(Tabキー)
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Update the order in which the top three sales orders are...
---提案を確認して受入(Tabキー)
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Update the QuarterlySalesReport method to display all of...
---提案を確認して受入(Tabキー)
---QuarterlySalesReportメソッド全体を選択し、インライン・...
Use extended ASCII characters to add border lines to the...
---提案を確認して受入(Tabキー)
---Program.cs ファイルへの変更を保存しアプリケーションを...
-Exercise - Complete the code logic challenge 16 min~
演習 - コードロジックの課題を完了する
-Review the code logic solution 8 min~
コードロジックのソリューションをレビューする
-Exercise - Convert code from one programming language to...
演習 - あるプログラミング言語から別のプログラミング言語へ...
--チャット・ビューを使用してプログラミング言語間でコード...
---Visual Studio Code の 1 番目のインスタンスでPythonのフ...
---main.pyの内容を選択、チャット ビューを開き、次のプロン...
Convert #selection to C#
---Visual Studio Code の 2 番目のインスタンスを開く
---チャット・ビューを開き、次のプロンプトを入力してスキャ...
@workspace /new console application in C# NET8 named APL...
---Visual Studio Code の 2 番目のインスタンスのProgram.cs...
--インライン・チャットを使用してプログラミング言語間でコ...
---Visual Studio Code の 1 番目のインスタンスでPythonのフ...
---main.pyの内容を選択、インライン・チャットを開き、次の...
Convert #selection to C#
---Visual Studio Code の 2 番目のインスタンスを開く
---インライン・チャットを開き、次のプロンプトを入力してス...
@workspace /new console application in C# NET8 named APL...
---Visual Studio Code の 2 番目のインスタンスのProgram.cs...
***Knowledge check & summary [#w87f1dc9]
-Knowledge check 8 min
--行補完:コメントとコード行
--補完:プロンプトとエディタ内のコードのコンテキスト
-Summary 3 min
**[[Develop unit tests using GitHub Copilot tools>https:/...
GitHub Copilot ツールを使用してユニットテストを開発する
***ユニット [#i4a361f8]
-Introduction 3 min
***Exercise [#v735d4e4]
-Examine the unit testing tools and environment 8 min~
単体テストツールと環境を調べる
--VSCodeでC#でテストフレームワーク(xUnit/NUnit/MSTest)...
--テスト・プロジェクトは被テスト・プロジェクトのプロジェ...
--Copilot Chat を使用してユニットテストケースを生成
---選択して生成
Write a unit test for the method in the #editor。
---選択して生成
#selection write a unit test for this code。
--Visual Studio Code でユニットテストを実行および管理~
テストフレームワークの仕様の話:https://zenn.dev/yuriemor...
-Exercise - Create unit tests by using GitHub Copilot Cha...
演習 - GitHub Copilot Chatを使ってユニットテストを作成する
--Visual Studio Code環境でサンプルアプリを準備する
---SampleApps.zipのAPL2007M4PrimeServiceフォルダをVisual ...
---Numbersフォルダーを展開し、PrimeService.csファイル内の...
--ユニットテスト用のxUnitテストプロジェクトを作成する
---Visual Studio Code でソリューション・エクスプローラー...
---ソリューション・エクスプローラー・ビューで、APL2007M4P...
---プロジェクト タイプのリストが表示されたら、xUnit テス...
---プロジェクト名として「PrimeService.UnitTests 」と入力...
---PrimeService.UnitTestsフォルダを展開しUnitTest1.cs フ...
---PrimeService.UnitTestsを右クリックし、[プロジェクト参...
---PrimeService.UnitTestsを右クリックし、新規ファイル、ク...
---名前空間を変更する:PrimeService.UnitTests → System.N...
---ソリューションをビルドするには、Ctrl + Shift + B → dot...
--チャット・ビューを使用してユニットテストを作成する
---ソリューション・エクスプローラー・ビューの Numbers で ...
---IsPrimeメソッドを選択しチャット・ビューを開き「コンテ...
---[添付ファイルの検索]DDLの最近開いたセクションでPrimeSe...
---[添付ファイルの検索]テキスト ボックスに「PrimeService....
---チャット・ビューで、/tests add unit tests for my code ...
---Copilot の提案を確認、「計画」と「単体テストを含むコー...
---[編集を適用]ボタンをクリックすると、ユニット テスト コ...
---このコードを使用して、PrimeService.UnitTests プロジェ...
---[ファイル]メニューで[名前を付けて保存]を選択し、PrimeS...
---PrimeServiceTests.csを選択し、[保存]を選択、上書きする...
---更新された PrimeServiceTests.cs ファイルを確認
---ビルドが成功すると各ユニット テストの横に緑色の「テス...
--インライン・チャットを使用してユニットテストを作成する
---ソリューション・エクスプローラー・ビューの Numbers で ...
---IsPrimeメソッドを選択しインライン・チャット・セッショ...
Create unit tests for the IsPrime method using the xUnit...
---チャット・ビューとインライン・チャットでは同様のテスト...
-Exercise - Create unit tests for specific conditions by ...
演習 - GitHub Copilotを使って特定の条件に対するユニットテ...
--Visual Studio Code環境でサンプルアプリを準備する
---SampleApps.zipのAPL2007M4PrimeService-UnitTestsフォル...
---PrimeService.UnitTestsフォルダを展開しPrimeServiceTest...
---PrimeServiceTests.cs ファイルを保存し、ソリューション...
--Copilot のコード行補完提案を使用してユニットテストを作...
---PrimeServiceTestsクラス内に空白行を作成し1-2 秒待つと...
---「承認」を選択し、Copilot によって生成された単体テスト...
---次セクションで不足している境界値の単体テストケースを提...
--Copilot と Copilot Chat を使用して特定の条件のユニット...
---PrimeServiceTestsクラスの内容を選択しチャット・ビュー...
---PrimeService.cs ファイルをチャット・ビューにD&Dしてコ...
---チャット・ビューに次のプロンプトを入力:@workspace #se...
---Copilot が提供する提案を確認
Yes, there are a few edge cases that should also be test...
1. Large Prime Numbers: Ensure the function can handle l...
1. 大きな素数: 関数が大きな素数を処理できることを確認し...
2. Large Non-Prime Numbers: Ensure the function can hand...
2. 大きな非素数: 関数が大きな非素数を処理できることを確...
3. Even Numbers Greater Than 2: Ensure the function retu...
3. 2 より大きい偶数: 関数が 2 より大きい偶数に対して fal...
4. Small Prime Numbers: Ensure the function correctly id...
4. 小さな素数: 関数が 2 や 3 などの小さな素数を正しく識...
Here are the additional test cases:
追加のテスト ケースは次のとおりです。
---PrimeServiceTestsクラスの最後のテスト・メソッドの後に...
---チャット・ビューでコード・スニペットの上にマウスを移動...
---PrimeServiceTests.cs ファイルを保存し、ソリューション...
---生成されたIsPrimeメソッドの単体テストを確認、テストに...
---マウス・ポインタを緑色の「テスト矢印」の上に置きクリッ...
---緑色の「テスト矢印」の 1 つを右クリックし「Reveal in T...
---テストの実行とデバッグ、およびテスト実行、結果表示に使...
---テスト・エクスプローラー・ビューで[テストの実行]を選択...
-Exercise - Complete the "create unit tests" challenge 12...
演習 - 「ユニットテストの作成」に挑戦する
--Visual Studio Code環境でサンプルアプリを準備する
---SampleApps.zipのAPL2007M4BankAccountフォルダをVisual S...
--チャレンジ要件
---BankAccountクラス内のメソッド(Credit、Debit、Transfer...
---メソッド毎に1つ以上のテストケースを作成し、合計12以上...
---すべてのテストがテスト・エクスプローラーに表示され、メ...
--チャレンジの手順
---ソリューションに xUnit テスト プロジェクトを追加しプロ...
---必要なプロジェクト参照とクラス ファイルを作成、Copilot...
---ソリューションをビルドし、テストがテスト・エクスプロー...
---テストを実行し、必要な数のテストが正常に実行されること...
-Review the "create unit tests" solution 7 min~
「ユニットテストを作成する」ソリューションをレビューする。
--Visual Studio Code環境でサンプルアプリを準備する
---SampleApps.zipのAPL2007M4BankAccountフォルダをVisual S...
---ソリューション・エクスプローラー・ビューからAPL2007M4B...
---[新しいプロジェクトの作成]ダイアログ ボックスで、[xUni...
---プロジェクトにBankAccount.UnitTestsという名前を付けデ...
---UnitTest1.cs ファイルを削除しBankAccount プロジェクト...
---BankAccountTests.csファイルにBankAccount.UnitTestsクラ...
--BankAccountチャットビューを使用してクラスのユニットテス...
---BankAccount.cs ファイルを開きBankAccount クラス全体を...
---チャット・ビューを開き[コンテキストのアタッチ] ボタン...
---チャット・ビューで、/tests(スラッシュ・コマンド)を選...
---[ファイル]メニューで[名前を付けて保存]を選択し、BankAc...
---BankAccountTests.csを選択し、[保存]を選択、既存のファ...
---BankAccountTestsクラスに、BankAccount型のプライベート...
---ソリューションをリビルドし、テストが Visual Studio Cod...
--チャット・ビューを使用して境界値の単体テストケースを作成
---BankAccountTests.cs ファイルを開きBankAccountTests ク...
---チャット・ビューを開き[コンテキストのアタッチ] ボタン...
---次のプロンプトを入力:@workspace #selection Are there ...
---チャット・ビューで、提案された境界値の単体テストケース...
---ファイルを保存、ソリューションをビルド、少なくとも 12 ...
---BankAccountTests.cs ファイルの内容全体を選択し、インラ...
---次のプロンプトを入力:#selection arrange the unit test...
---提案された更新を確認して承認、ファイルを保存し、ソリュ...
--テスト・エクスプローラーを使用してユニットテストを実行
---すべてのテストを実行するには「テストの実行」を選択
---各メソッドの少なくとも 1 つのテストが合格することを確認
***Knowledge check & summary [#h1acdb5b]
-Knowledge check 7 min
--アサーション:ユニットテストにおいて想定される結果と実...
---関数が想定外のデータを受け取らないようにするために使わ...
---入力データの妥当性を確認するものであり、関数の出力結果...
-Summary 3 min
***Exercise [#na1d59e5]
**[[Implement code improvements using GitHub Copilot tool...
GitHub Copilot ツールを使用してコードの改善を実装する
***ユニット [#l42d8e93]
-Introduction 3 min
-Examine GitHub Copilot support for code improvements 6 m...
GitHub Copilotのサポートを検討し、コードを改善
--AI を活用したツールがなければ、コードの改善を実装するに...
--Copilot Chat によるコードの改善
---効果的なプロンプトを作成するための知識と能力は必要
---提案された更新を評価して実装する知識と能力は必要
---焦点を当てるコード改善のカテゴリ:品質、信頼性、性能、...
--コード品質の改善~
リファクタリング、デザイン パターン、コード スタイル強化...
---プロンプト:「Userクラスのモジュール性を高めるためにリ...
---プロンプト:「クラスの内部構造を改善するためのOrderSer...
---プロンプト:「ProductControllerクラスを読みやすくする...
--コードの信頼性の向上~
エラー処理、入力検証、例外処理でエッジケースや予期しない...
---プロンプト:「クラスに対して、より適切なエラー処理戦略...
---プロンプト:「LoginForm無効なユーザー入力を防ぐために...
---プロンプト:「クラス内の例外処理を強化してDatabaseConn...
--コードパフォーマンスの改善~
アルゴリズム最適化、メモリ使用量の削減、コード実行の効率...
---プロンプト:「パフォーマンスを向上させるために、Produc...
---プロンプト:「ImageProcessingクラス内のメモリ使用量を...
---プロンプト:「SearchServiceクラスの効率を改善して、検...
--コードセキュリティの改善
データ暗号化の強化、安全な認証メカニズム、セキュリティ脆...
---プロンプト:「ユーザー パスワードを保護するために、ク...
---プロンプト:「LoginService不正アクセスを防ぐために、ク...
---プロンプト:「一般的なセキュリティの脆弱性を防ぐために...
--Visual Studio Code で Copilot ツールにアクセスする~
・コード行補完、インライン・チャット、チャット・ビュー、...
・改善のための柔軟なプロンプトを入力できるチャット・ビュ...
・チャット・ビューはコード改善のための評価に役立ち、イン...
---チャット・ビュー~
・提案には、コードベースの改善に役立つ「自然言語応答」と...
・「自然言語応答」では、提案された更新を実装する方法につ...
・「コード・スニペット」では、コードを変更する方法の具体...
・提案を確認し、その関連性を評価し、目標に合致する「コー...
---インライン・チャット~
・提案は、エディタ上で直接表示され、提案は、自然言語によ...
・別のパネルに切り替えることなく、コードをどのように改善...
***Exercise [#g3ee0794]
-Exercise - Improve code quality by using GitHub Copilot ...
演習 - GitHub Copilot Chat を使ってコードの品質を向上させる
--コードリファクタリングと高品質コード
---外部の動作を変更せずに既存のコードを再構築するプロセス
---コードベースの内部構造を改善し、理解、保守、拡張を容易...
---読みやすさの向上、複雑さの軽減、モジュール性の向上、再...
---考慮事項:読み易さ、複雑さの軽減、モジュール性と再利用...
--Visual Studio Code環境でサンプルアプリを準備
---SampleApps.zipのAPL2007M5BankAccountフォルダをVisual S...
---Program.csファイルを開き、コードを確認(銀行口座を作成...
--Copilot Chat のプロンプトを開発する
---チャット・ビューからコンテキストとしてBankAccount.cs ...
---プロンプト:「@workspace /explain How can I improve th...
@workspace /explain [選択したコード] の読みやすさを向上さ...
---プロンプト:「@workspace /explain #selection How can I...
@workspace /explain #selection [選択したコード] の保守性...
---プロンプト:「@workspace /explainHow can I improve the...
@workspace /explain [選択したコード] のモジュール性を向上...
---プロンプト:「#selection How can I refactor the [selec...
#selection [選択したコード] をリファクタリングしてモジュ...
---プロンプト:「@workspace /explain What are some option...
@workspace /explain [選択したコード] を簡素化するためのオ...
--Copilot Chat を使用してコードをリファクタリングする
---Program.cs ファイルに含まれているメソッドを確認
---準備したプロンプトから最初のプロンプトを選択
---改善したいコードを選択し、チャット・ビューを開く
---チャット・ビューで、[コンテキストの添付]ボタンを使用し...
@workspace /explain #selection How can I improve the rea...
@workspace /explain #selection GenerateRandomBalance、Ge...
---生成されたメソッドの読みやすさを向上させる手順~
・Randomオブジェクトを生成する繰り返しコードを別のメソッ...
・GenerateRandomDateOpened メソッドのrange変数名をdaysRan...
・各メソッドの動作を説明するコメントを追加すると、コード...
・GenerateRandomDateOpened メソッドで開始日を何年遡れるか...
・C# では、代入の右側で型が明らかな場合に var キーワード...
---提案された更新を実装~
・ブロック コメントで既存のコードをコメント アウト、~
・チャット・ビューの [カーソル位置に挿入] を使用して提案...
・また、[コピー] オプションを使用して、更新を任意の場所に...
---チャット・ビューで、[コンテキストの添付]ボタンを使用し...
@workspace /explain How can I improve the maintainabilit...
@workspace /explain Main、GenerateRandomBalance、Generat...
---生成されたメソッドの読みやすさを向上させる手順~
・Randomオブジェクトを生成する繰り返しコードを別のメソッ...
・GenerateRandomDateOpened メソッドのrange変数名をdaysRan...
・各メソッドの動作を説明するコメントを追加すると、コード...
・GenerateRandomDateOpened メソッドで開始日を何年遡れるか...
・C# では、代入の右側で型が明らかな場合に var キーワード...
---提案された更新を実装~
・ブロック コメントで既存のコードをコメント アウト、~
・チャット・ビューの [カーソル位置に挿入] を使用して提案...
・また、[コピー] オプションを使用して、更新を任意の場所に...
-Exercise - Improve code reliability and performance by u...
演習 - GitHub Copilot Chat を使ってコードの信頼性とパフォ...
--コードの信頼性と性能
---コードの信頼性を調べる:潜在的な問題 / テスト / 例外処...
---コードの性能を調べる:アルゴリズム最適化 / 不必要な計...
--Copilot Chat を使用したコードの信頼性と性能の向上
---Visual Studio Code環境でサンプルアプリを準備する(Samp...
--Copilot Chat のプロンプトを開発する
---更新するコードよりも高いレベルでスコープ設定された外部...
---スコープ参照(ファイル参照、環境参照)、[コンテキスト...
---意図は明確、簡潔、かつ具体的で改善の種類を指定する必要...
--BankAccountプロジェクトを展開し、BankAccount.csおよびPr...
---プロンプト:「@workspace /explain How can I improve ex...
「@workspace /explain [選択したコード] の例外処理を改善す...
---プロンプト:「@workspace /explain How can I reduce une...
「@workspace /explain [選択したコード] の予期しない問題を...
---プロンプト:「@workspace /explain How can I improve un...
「@workspace /explain [選択したコード] の単体テストのサポ...
---プロンプト:「@workspace /explain How can I avoid futu...
「@workspace /explain [選択したコード] で今後バグや問題が...
---プロンプト:「@workspace /explain How can I improve ex...
「@workspace /explain [選択したコード] の例外処理を改善す...
---プロンプト:「@workspace /explain How can I improve th...
「@workspace /explain [選択したコード] のアルゴリズムまた...
---プロンプト:「@workspace /explain How can I improve pe...
「@workspace /explain [選択したコード] 内の非同期タスクま...
---プロンプト:「@workspace /explain How can I improve un...
「@workspace /explain [選択したコード] の単体テストのサポ...
--Copilot Chat を使用して BankAccount クラスのコード信頼...
---BankAccount.cs の全コードを選択、Program.cs、BankAccou...
@workspace /explain How can I improve exception handling...
---Copilot Chat の「特定の例外を使用する / 例外メッセージ...
---BankAccount.cs の全コードを選択、Program.cs、BankAccou...
@workspace /explain How can I reduce unexpected issues f...
---Copilot Chat の「アカウント タイプに列挙型を使用する /...
---提案の範囲が広い場合、1 つの提案項目を使用して、より具...
@workspace /explain #file:BankAccount.cs How can I impro...
---Copilot Chat の「検証ロジックを部品化 / カスタム検証属...
--Copilot Chat を使用して Program クラスのコードの信頼性...
---Program.cs の全コードを選択、Program.csをコンテキスト...
@workspace /explain How can I improve performance with a...
---Copilot Chat の「async および await キーワードを使用し...
---上記に習い、「asynchronous」→「exception handling」の...
-Exercise - Improve code security by using GitHub Copilot...
演習 - GitHub Copilot Chat を使ってコードのセキュリティを...
--コードセキュリティ
---コードの脆弱性を分析する(領域毎の脆弱性を知る)~
統合ポイント / 内部システム・インシデント / 電子メール / ...
---包括的なアプローチを使用してコードセキュリティを評価す...
安全なコーディングの実践 / コード分析ツール / 依存関係の...
エラー処理 / セキュリティ テスト / コンプライアンス / 教...
---コードセキュリティレビューを実施する(確認する側面)~
正確性 / セキュリティ / 設計エラーまたは制限 / 性能と拡張...
テスト / 一貫性とコード スタイルの規則 / ローカライゼーシ...
---一般的なセキュリティ上の欠陥を検索して理解する~
様々なインジェクションの欠陥 / 認証の不備 / 機密データの...
データ アクセス制御の不備 / 機能レベルのアクセス制御の欠如~
XSS / 安全でないデシリアライゼーション / 不十分なログ記録...
安全でない直接オブジェクト参照 (IDOR) = 機能実装における...
--Copilot Chat を使用してコードセキュリティを向上させる
---Visual Studio Code環境でサンプルアプリを準備する(Samp...
--Copilot Chat のプロンプトを開発する(同上)
---更新するコードよりも高いレベルでスコープ設定された外部...
---スコープ参照(ファイル参照、環境参照)、[コンテキスト...
---意図は明確、簡潔、かつ具体的で改善の種類を指定する必要...
--BankAccountプロジェクトを展開し、BankAccount.csおよびPr...
---プロンプト:「@workspace /explain How can I implement ...
「@workspace /explain [選択したコード] に認証を実装するに...
---プロンプト:「@workspace /explain How can I protect se...
「@workspace /explain [選択したコード] 内の機密データを保...
---プロンプト:「@workspace /explain How can I implement ...
「@workspace /explain [選択したコード] の疑わしいアカウン...
---プロンプト:「@workspace /explain How can I improve th...
「@workspace /explain [選択したコード] の例外処理のセキュ...
---プロンプト:「@workspace /explain How can I improve th...
「@workspace /explain [選択したコード] のセキュリティを向...
---プロンプト:「@workspace /explain How can I improve th...
「@workspace /explain [選択したコード] のセキュリティを向...
--Copilot Chat を使用して BankAccount クラスのコード セキ...
---BankAccount.cs の全コードを選択、Program.cs、BankAccou...
@workspace /explain How can I implement authentication i...
---Copilot Chat の「認証についての」的な提案を確認(大き...
---提案の範囲が広い場合、1 つの提案項目を使用して、より具...
---BankAccount.cs の全コードを選択、Program.cs、BankAccou...
@workspace /Explain How can I update the Program.cs file...
---Copilot Chat の「パスワード認証の実装についての」的な...
---BankAccount.cs の全コードを選択、Program.cs、BankAccou...
@workspace /explain How can I protect account numbers an...
---Copilot Chat の「カプセル化 / 機密データを暗号化 / プ...
--Copilot Chat を使用して Program クラスのコード セキュリ...
---Program.cs の全コードを選択、Program.cs、BankAccount.c...
@workspace /explain How can I improve the security of th...
---Copilot Chat の「安全なパスワードの取り扱い / 暗号化 /...
---Program.cs の全コードを選択、Program.cs、BankAccount.c...
@workspace /explain How can I implement secure exception...
---Copilot Chat の「特定の例外をキャッチ / 例外を安全にロ...
-Exercise - Complete the "app improvement" challenge 20 m...
演習 - 「アプリの改善」課題を完了する
--課題: GitHub Copilot Chat を使用して APL2007M5SalesRepo...
--コーディング環境を準備する
---Visual Studio Code環境でサンプルアプリを準備する(Samp...
--チャレンジ要件
---2 つ以上のプロンプトからの提案を使用して、QuarterlySal...
・レポート テーブルを構築するコードを、DisplayReports と...
・上位 3 つの製品を識別するコードを TopThree という名前の...
---1 つ以上のプロンプトからの提案を使用して、QuarterlyInc...
売上レポートの表示に寄与する少なくとも 3 つのメソッドに対...
---1 つ以上のプロンプトからの提案を使用して、認証されたユ...
・QuarterlySalesReportメソッドへのアクセスを認証されたユ...
・認証されていないユーザーが、売上レポートの生成に使用さ...
---コードを直接記述せずCopilotの提案を使用。
---Copilot が問題を修正できない場合、提案コードの更新での...
--チャレンジの手順(割愛)
-Review the "app improvement" solution 8 min~
「アプリの改善」ソリューションをレビュー(前のセクション...
--コード品質の改善
---QuarterlySalesReportメソッドのモジュール性を向上させる...
@workspace #selection Extract the code that builds repor...
---上位 3 つの製品を識別するコードを TopThree という別の...
@workspace #selection Extract the code that identifies t...
--コードの信頼性の向上
---QuarterlyIncomeReportクラスの売上レポートの表示に寄与...
@workspace #selection Implement error handling for the s...
--コードセキュリティの改善
---QuarterlySalesReportメソッドへのアクセスを認証されたユ...
@workspace #selection Restrict access to the **Quarterly...
***Knowledge check & summary [#qfce705d]
-Knowledge check 8 min
-Summary 3 min
***Exercise [#y25d6034]
**[[Guided project - Accelerate app development using Git...
ガイド付きプロジェクト - GitHub Copilot ツールを使用して...
***ユニット [#t61378a0]
-Introduction 2 min
-Prepare the development environment 6 min~
開発環境の準備
--プロジェクト概要
---事故で図書館のサーバーが損傷し、修復には数週間かかるた...
---最小限の機能として、本の貸し出し・返却を提供するコンソ...
---最初は2人で作業し、あなたは図書館の記録をもとにJSONデ...
---安全で信頼できるシステムが求められ、1日後にバージョン1...
---GitHub Copilotを活用し、将来的には拡張も視野に入れてい...
--プロジェクト開発環境の設定
---ローカル PC またはホストされた環境で実行できる
---セットアップ プロセスには、次の手順が含まれる。~
・リソース要件を確認~
・コーディング ツールをインストールまたは更新~
・Visual Studio Code 拡張機能を構成~
・同僚が開発したライブラリ アプリケーション コードをダウ...
--リソース要件~
開発環境には次のソフトウェアがプロビジョニングされたロー...
---Git バージョン管理ソフトウェア
---.NET SDK 8.0 (または最新の LTS バージョン)。
---Visual Studio Code、C# Dev Kit 拡張機能(MS)、GitHub ...
---アクティブな GitHub Copilot サブスクリプションを持つ G...
--コーディングツールをインストールまたは更新する
---Git バージョン管理ソフトウェアをインストール/更新
---.NET SDK 8.0 または最新の LTS バージョンをインストール...
---最新バージョンの Visual Studio Code をインストール/更新
--Visual Studio Code を構成する
---Visual Studio Code の C# Dev Kit と GitHub Copilot 拡...
---Visual Studio Codeでライブラリアプリケーションを設定する
--Visual Studio Codeでライブラリ・アプリケーションを設定
---同僚がライブラリ アプリケーションの初期バージョンを開...
https://raw.githubusercontent.com/MicrosoftLearning/APL-2...
---ダウンロードしたGuidedProjectApp.zipを右クリックし、[...
---[完了時に抽出されたファイルを表示する]を選択し、[抽出]...
---抽出したGuidedProjectAppフォルダーを、Windows デスクト...
---Visual Studio Code でAccelerateDevGitHubCopilotフォル...
---ソリューション・エクスプローラー・ビューで、Accelerate...
--ソリューション構造
AccelerateDevGitHubCopilot\
├src\
│├Library.ApplicationCore\
│├Library.Console\
│└Library.Infrastructure\
└tests\
└UnitTests\
***Exercise [#je2cb0d1]
-Exercise - Analyze and document code using GitHub Copilo...
演習 - GitHub Copilot ツールを使用してコードを分析し、文...
--ライブラリアプリケーションのコードベースを調べる
GitHub Copilotを使用してライブラリアプリケーションのコー...
---AccelerateDevGitHubCopilotVisual Studio Code でソリュ...
---チャット ビューを開き、次のプロンプトを入力
@workspace Describe this project
---回答を確認(プロジェクトの説明)
---ConsoleApp.csファイルを見つけて開き、チャット・ビュー...
@workspace #editor Describe the ConsoleApp class
---回答を確認(ConsoleAppクラスの説明)
---Program.csファイルを見つけて開き、チャット・ビューを開...
@workspace #editor Describe the Program.cs file
---回答を確認(Programクラスの説明)
---Library.Infrastructureプロジェクト・フォルダを開きチャ...
---次に、JsonData.cs、JsonLoanRepository.cs、JsonPatronRe...
---チャット・ビューに次のプロンプトを入力(スラッシュ・コ...
@workspace /explain Explain how the data access classes ...
---回答を確認(データ アクセス クラスの説明)
---ライブラリ レコードをシミュレートするために使用されるs...
--アプリケーションをビルドして実行する
---ビルド
---CLIを実行(仕様の雰囲気が解る)
--コード用のGitHubリポジトリを作成する
---割愛
---README ファイルのプロジェクト ドキュメントを生成するに...
@workspace Generate the contents of a README.md file for...
---割愛
---Visual Studio Code のソース管理ビューのメッセージ ボッ...
---割愛
-Exercise - Develop code features using GitHub Copilot to...
演習 - GitHub Copilot ツールを使用してコードの機能を開発...
--リポジトリに新しいブランチを作成する(割愛)
--図書館員が本の在庫状況を判断できる機能を開発
---CommonActions.cs ファイルを開き、CommonActions列挙型を...
Update selection to include a new `SearchBooks` action.
---CommonActions列挙型への新しいSearchBooksアクションを追...
---ConsoleApp.cs ファイルを開き、WriteInputOptionsメソッ...
Update selection to include an option for the `CommonAct...
---WriteInputOptionsメソッドへの新しいCommonActions.Searc...
---ConsoleApp.cs ファイルを開き、ReadInputOptionsメソッド...
Update selection to include an option for the `CommonAct...
---ReadInputOptionsメソッドへの新しいCommonActions.Search...
---ConsoleApp.cs ファイルを開き、PatronDetailsメソッドを...
Update selection to add `CommonActions.SearchBooks` to `...
---PatronDetailsメソッドがReadInputOptionsメソッドを呼び...
---ConsoleApp.cs ファイルを開き、PatronDetailsメソッドを...
Update selection to add `CommonActions.SearchBooks` to `...
---PatronDetailsメソッドがReadInputOptionsメソッドを呼び...
---SearchBooksメソッドの処理要件について考えつつ、Console...
---SearchBooksメソッドを選択しインライン・チャットに次の...
Update selection to obtain a book title. Prompt the user...
---ユーザーが指定した本のタイトルを取得するコード更新の提...
---SearchBooksメソッドを選択しチャット・ビューを開き、次...
---次のプロンプトを入力:ファイル内で一致する書籍のタイト...
@workspace Explain how to update the `SearchBooks` meth...
---ファイル内で一致する書籍のタイトルを検索し、その書籍が...
・ステップ1: JsonDataクラスにタイトルで書籍を検索するSear...
・ステップ2: ConsoleAppクラスのSearchBooksメソッドを更新...
・ステップ3: Program.csを更新してJsonDataをConsoleAppに渡...
---SearchBooksメソッドを選択しチャット・ビューに次のプロ...
Explain the LINQ queries and the evaluation of the book'...
---生成結果を客員し実装に問題がないことを確認する(非手続...
---ソリューション・エクスプローラー・ビューで、ソリューシ...
---新しい機能によって書籍の在庫状況が正しく判断されること...
---変更をリモートリポジトリにプッシュし、プル リクエスト...
---GitHub Copilot Enterprise をサブスクリプションしている...
(色々調べると、GitHub Copilot ではなくOpenAIを使用するこ...
-Exercise - Develop unit tests using GitHub Copilot tools...
演習 - GitHub Copilot ツールを使用してユニットテストを開...
--UnitTestsプロジェクトによって実装されたユニットテストへ...
---チャット・ビューを開き、次のファイルをコンテキストに追...
---次のプロンプトを入力:ワークスペースのコンテキストでユ...
@workspace Explain the approach to unit testing that's b...
---次のプロンプトを入力:ワークスペースのコンテキストでユ...
@workspace What are the benefits of this approach to uni...
---チャット・ビューを開き、次のファイルをコンテキストに追...
---次のプロンプトを入力:ワークスペースのコンテキストでユ...
@workspace How can I extend the `UnitTests` project to b...
--UnitTestsプロジェクトを拡張してデータアクセスクラスのテ...
---チャット・ビューを開き、UnitTests.csprojファイルをコン...
---次のプロンプトを入力:ワークスペースのコンテキストでテ...
@workspace Explain how to add a reference to the Library...
---GitHub Copilot の応答を使用して、UnitTests.csproj ファ...
---チャット・ビューを開き、次のファイルをコンテキストに追...
---次のプロンプトを入力:ワークスペースのコンテキストでJs...
@workspace Create fields and a class constructor for the...
---GetLoanTestクラスの実装をGetLoan.csファイルに対して行...
---チャット・ビューを開き、次のファイルをコンテキストに追...
---次のプロンプトを入力:ワークスペースのコンテキストでJs...
---GetLoan.csファイルの内容を選択し、チャット・ビューに次...
@workspace Update the selection to include a unit test f...
---GetLoan.csファイルのGetLoanTestクラスにテストのGetLoan...
---上記で作成されたメソッドの下に空行を作成すると、ローン...
---loanIdデータ セットにない値を割り当てる自動補完の提案...
--作業を確認する~
上記で実装したテストをテスト・エクスプローラー・ビューか...
-Exercise - Refactor and improve code sections using GitH...
演習 - GitHub Copilot ツールを使用してコードセクションを...
--GitHub Copilot を使用して EnumHelper クラスをリファクタ...
fieldInfo.GetCustomAttributesがリフレクションで処理が遅い...
---ソリューション・エクスプローラー・ビューを使用して、En...
---チャット・ビューを開き、次のファイルをコンテキストに追...
---次のプロンプトを入力:リフレクションではなく辞書を使用...
@workspace I want to refactor the `EnumHelper` class usi...
---必要に応じて次のプロンプトを入力:ディクショナリの enu...
@workspace Use the description values in LoanExtensionSt...
@workspace Use the description values in LoanReturnStatu...
@workspace Use the description values in MembershipRenew...
---生成されたコードにラムダ式が含まれるのでコードをリファ...
--LINQを使用するようにデータアクセスメソッドを更新する
---JsonData.cs のメソッドをリファクタリングして LINQ を使...
---インライン・チャットを開き、次のプロンプトを入力:#sel...
---提案された更新を[承認]を選択して承認する。
---同じアプローチで、GetPopulatedLoan、GetPopulatedBookIt...
---JsonData.cs ファイルを開きGetPopulatedLoan or GetPopul...
---インライン・チャットを開き、次のプロンプトを入力:選択...
#selection refactor selection to `return new Loan` using...
#selection refactor selection to `return new BookItem` u...
#selection refactor selection to `return new Book` using...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
--JsonLoanRepository.cs のメソッドをリファクタリングして ...
---JsonLoanRepository.csファイルを開き、GetLoanメソッドを...
#selection refactor selection using LINQ with `_jsonData...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
---JsonLoanRepository.csファイルを開き、UpdateLoanメソッ...
#selection refactor selection using LINQ find an existin...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
--JsonPatronRepository のメソッドをリファクタリングして L...
---JsonPatronRepository.csファイルを開き、SearchPatronsメ...
#selection refactor selection using LINQ with `_jsonData...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
---JsonPatronRepository.csファイルを開き、GetPatronメソッ...
#selection refactor selection using LINQ with `_jsonData...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
---JsonPatronRepository.csファイルを開き、UpdatePatronメ...
#selection refactor selection using LINQ to find `patron...
---提案された更新を[承認]を選択して承認する。
---LINQ クエリを選択し、明説明(Explain)スマート・アクシ...
--作業を確認する~
上記で実装したプロジェクトをビルド・実行し、仕様通りに動...
***Knowledge check & summary [#h1c0a424]
-Knowledge check 5 min
-Summary 2 min
***Exercise [#r329bad3]
ページ名: