Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub Copilotハンズオン

GitHub Copilotハンズオン

https://github.com/Fukuoka-Business-Information-Center/copilot-hanson
GitHub Copilotの基本的な使い方から応用までを方法についてハンズオン形式で学びます

Transcript

  1. アジェンダ  1. GitHub Copilotとは  2. GitHub Copilotのセットアップ 

    3. ハンズオン  4. GitHub Copilot Chatを使用してプロジェクトを探索、解析する  5. 応用編  6. その他の生成AIとの違い  7. 今後試してみたいこと  8. 〆
  2. 課題  日付のフォーマット関数  金額のフォーマット関数  日付の差分計算  閏年判定 

    日付の週末判定  英数字判定関数  ランダムな記号英数字を生成して返す関数  FizzBuzz
  3. コマンド一覧  `/doc` → 「Docコメントを生成してください」  `/explain` → 「コードの動作を教えてください」 

    `/fix` → 「問題箇所の修正をしてください」  `/generate` → 「コードを生成してください」  `/tests` → 「テストコードを作成してください」  `/new` → 新規プロジェクトやファイルを作成。  `/clear` → チャットセッションをクリア。
  4. コンテキストについて 人もAIも正しく回答するためには正確な前提、文脈、情報(コンテキスト)が必要です。 https://code.visualstudio.com/docs/copilot/copilot-chat#_chat-context  `@workspace` → プロジェクト全体  `#ファイル名` `#クラス名`

    `#関数名` → 特定のコードや範囲にフォーカス。  `#editor` 選択範囲  何も指定しない場合は通常いま開いているファイルについてフォーカスします  いま作業中のファイル > 目に見えているファイル(別ウィンドウ含む) > 裏で開いて いるファイルの順に参照していそう(裏はとっていません)
  5. GitHub Copilot Chat  @workspace どのような技術スタックが使用されていますか  @workspace 現在のプロジェクトのおすすめの拡張機能は 

    @workspace メールを送信しているファイルは  @workspace テーブルUserを使用しているファイルは  @workspace #ShoppingContoroller.phpの決済処理はどこですか  #shoppingController.phpと関係するファイルは
  6. 5.2 データのフォーマット {'ResponseMetadata': {'HTTPStatusCode': 200, 'HTTPHeaders': {'x- powered-by': 'Express', 'content-type':

    'application/json; charset=utf-8', 'content-length': '29', 'etag': 'W/"1d-xxxxxLOWYQgV9QLDh5W3w7Uz4sQ"', 'date': 'Fri, 15 Nov 2024 02:28:45 GMT', 'connection': 'keep-alive', 'keep- alive': 'timeout=5'}, 'RetryAttempts': 0}, 'MessageId': 'ses-000404212'} Ctrl + I → `to format`
  7. 5.9 ショートカットの設定 いくつかの操作をショートカットキーとして登録することでより便利に 使用することが可能 Ctrl + K → Ctrl +

    S  github.copilot.chat.review (レビュー)  github.copilot.chat.generate (コード生成)  github.copilot.chat.generateDoc (コメント生成)  github.copilot.chat.explain (説明)
  8. ChatGPTとGitHub Copilotで何が違う? ChatGPT GitHub Copilot 要件定義 ◯ × 設計 ◯

    × 実装 ◯ ◎ レビュー ◯ ◎ コード分析 ◯ ◎ テスト ◯ ◎ ファイル等形式を指定して出力可 能 プロジェクト全体を参照すること が可能 できることに大きな差があるわけではない UIの違いにより使い勝手が異なる
  9. 開発プロセスの見直し 1. コードの自動生成、補間 2. GitHub Copilotにコードの説明をしてもらう 3. GitHub Copilotにレビューしてもらう 4.

    動作検証、テスト(テストコード) Copilotを利用して理解するプロセスを入れるとより良いものになりそう
  10. Copilot = 副操縦士  生成AIの使える、使えないは人によって非常に大きな 乖離があるように感じる。AIに対する捉え方の問題か も  主体はあくまで操縦士である我々にある(少なくとも 今はまだ)

     質問、命令が上手い人、言語化が上手い人  あるいは設計力、応用力が重要になってくる  「労力は外注できるが、能力は外注できない」らしい