Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

AI-Powered Development with GitHub Copilot 2024...

Avatar for Yuki Hattori Yuki Hattori
February 02, 2024

AI-Powered Development with GitHub Copilot 20240202

Avatar for Yuki Hattori

Yuki Hattori

February 02, 2024
Tweet

More Decks by Yuki Hattori

Other Decks in Technology

Transcript

  1. Agenda • GitHub Copilot に぀いお • AI を䜿った開発 うわさに぀いお •

    生成 AI ツヌルを䜿いこなす際に理解すべきこず • Copilot Tips & Tricks
  2. Integrations & APIs The AI Powered Developer Platform to Build,

    Scale, and Deliver Secure Software Collaboration Productivity Security Scale Powered by AI
  3. Prompt Engineering (狭矩) • 具䜓的なテクニックに焊点 • AIぞ 䟋瀺方法 フォヌマット、特定キヌワヌド 䜿甚など

    • 高粟床出力が芁求されるサヌビスや特定フォヌマット出力が必芁な堎合に特に有効 • AI 創 性 向䞊や出力 量・質 コントロヌルにも圹立぀ Prompt Engineering (広矩) / Prompt Crafting • 入力 党䜓的なアプロヌチに焊点を圓おる • 入力フォヌマット、䟋瀺 有無、内容、文脈 コントロヌルを含む • 人間 論理思考胜力、蚀語力、専門知識に基づく • 必芁なも 習埗すべきテクニック だけで なく特定文脈における 人間 胜力 うわさ: プロンプト゚ンゞニアリング テクニックが AI 時代に 重芁 * 甚語 出珟時 狭矩における定矩が䞻でした。 GitHub で 広矩 䜿い方を Prompt Crafting ず呌んでいたす プロンプト゚ンゞニアリング テクニックによりもたらされる差異 、 䞀般的に期埅されおいるほど 倧きくない
  4. プロンプト クラフティング胜力を鍛えよう • プロンプト゚ンゞニアリング どんな入力からも必ず 玠晎らしい出力を匕き出す銀 匟䞞で ない • 泥団子

    磚いおも泥団子 入力 質が䜎けれ 、出力 質も限らる。 自分 ダむダモンド💎 を探し、磚くこずが重芁!! ✹ うわさ: プロンプト゚ンゞニアリング テクニックが AI 時代に 重芁
  5. プロンプト クラフティング胜力 どうやっお鍛える ❓🀔 以䞋を実斜する • 知識を貯める • 専門技術を身に぀ける •

    経隓を積む • 特定 分野 研究をする • 実隓をしお色々詊しおみる • クリティカル シンキング / ロゞカル ラむティング技術を鍛え それに、プロンプト゚ンゞニアリング テクニックを組み合わせる うわさ: プロンプト゚ンゞニアリング テクニックが AI 時代に 重芁
  6. 初心者でもAI 䜿甚で倧幅なスキルアップが可胜 胜力 䞊限ずレビュヌ胜力 関係 • ゚ンゞニアが AI から匕き出せる胜力 侊限

    レビュヌできるコヌド 量や質に䟝存する • そ ため、「AI 優秀な゚ンゞニアだけが䜿いこなせる」 ずいう考えが䞀郚で存圚。 👉 こ 議論 AI 孊習促進機胜に぀いお蚀及しおいない うわさAI 優秀な゚ンゞニアしか䜿いこなせない
  7. AI 孊習ツヌルずしお 偎面 AI 開発支揎ツヌルであるずずもに、最匷 孊習促進ツヌルです。 AI ゚ンゞニア コヌド曞きやレビュヌ 間に孊習を促進し、新しいラむブラリ

    䜿い方やプ ログラミング蚀語 孊習機䌚を提䟛したす。 採甚されない提案においおも孊習プロセスが発生 • 採甚されなかったAI 提案をレビュヌするこずで、開発方向性や手段 掞察を埗る • 次回 指瀺や提案 採甚刀断に圹立぀ 䞭長期的な゚ンゞニア 成長に貢献 • 即時的な胜力向䞊だけでなく、䞭長期的なスキル向䞊にも貢献。 • AIから コヌド提案ず採甚を繰り返すこずで、゚ンゞニア 胜力䞊限を埐々に向䞊させる。 神話AI 優秀な゚ンゞニアしか䜿いこなせない
  8. å­Šç¿’ S字カヌブず AI による゚ンゞニア孊習曲線 うわさAI 優秀な゚ンゞニアしか䜿いこなせない AI 察話䞭にも自分 レビュヌできる範囲を拡匵し続ける =

    自分が短期的に孊習可胜な範囲たで 䜿いこなすこずができる • 奜奇心ず孊習意欲があれ 、より倚く 恩恵を受ける • ど 孊習フェむズでも、AIから 恩恵を受けられる 経 å­Š 習 党く 初心者 時点で AI 力を十分に匕き出せないが、 AI 初期孊習 床を早める 🚀 初玚者 ~ 䞭玚者 胜力䞀般や、 日垞䜜業タスクにおける凊理胜力 倧幅に匕き䞊がる 䞊玚者 、さらなる高みぞ 生産性だけでなく、探求や高床化 ため パヌトナヌになる
  9. ツヌル 違いを知る 自動補完型 ボット型 (フリヌフォヌム型 ) ゚ヌゞェント型 (゜リュヌション型 ) 入力

    ゚ディタぞ 入力 フォヌムぞ 入力 フォヌム 入力、ファむルアップロヌドなど 出力内容 コヌド / コメント コヌド / コメント / 解説文 線集可胜なコヌドを含む成果物 出力圢匏 コヌド 補完 コヌドを含む返信 成果物 出力 コヌドサむズ 小芏暡 (数文字~20行皋床) 䞭芏暡 (1行~数癟行) 倧芏暡 (数癟行~数千行) 明瀺的なプロンプト 0行 ~ 数行皋床 数行 ~ 数十行 倧量 応答 床 数癟ミリ秒 ~ 数秒 数秒 ~ 数十秒 数十秒 ~ ツヌル フォヌカス 応答 床、開発時 集䞭力 粟床、プロンプト構築補助 ゜リュヌションずしお 完成床 類䌌䜓隓 ペアプログラミング モブプログラミング Sack や Teams で 技術質問 軜量なプルリク゚スト受け取り ロヌコヌドツヌル 利甚 テンプレヌト゚ンゞン 利甚 ツヌル䟋 GitHub Copilot (Completion) GitHub Copilot (Inline) ChatGPT GitHub Copilot Chat 侀郹 GPTs / ロヌコヌドツヌルなど (デファクトスタンダヌド なし )
  10. Copilot (自動補完) 特城を理解 ナヌザヌの入力を 最小化 ツヌル 質 、ナヌ ザヌから 明瀺的な

    プロンプトなしに、望 たれる出力をどれだ け正確に予枬できる かに䟝存 むンクリメンタルな実装 手戻りの蚱容 迅速なレスポンスず 集䞭力の維持 確実で 安党な出力 Copilot Completion アゞャむルなやりず りをサポヌト 段階的コヌド出力ず ナヌザヌによる逐䞀 採吊決定が可胜 自動補完型ツヌル 利点 、迅 なレス ポンスによる集䞭力 維持 むンデックス化された 状態で 96TB にもな る䞖界最倧/ 最新 オヌプン゜ヌ スデヌタベヌスず 瞬時にコヌドマッチン グ、ラむセンスに関す る問題発生を 抑止 ツヌルに求めるべき質 モデルに求めるべき質 ず 異なる
  11. Copilot プロンプト コツ Context 文脈 AI がタスクをよりよく 理解する に圹立぀ Intent

    意図 Clarity 明瞭さ Specificity 具䜓性 プロンプトを䜜成する 際 具䜓的な目暙や 目的。 曖昧さがなく 理解しやすいこず プロンプト 具䜓性ず 正確さ レベル
  12. ゚ヌゞェント Copilot がより適切な回答を提䟛できるよう、゚ヌゞェントを䜿甚 しお質問 範囲ず意図を瀺すこずができたす。 • @workspace: ワヌクスペヌス内 コヌドに関するコンテ キストがあり、コヌドをナビゲヌトしお関連するファむルやク

    ラスを芋぀ける に圹立ちたす。 • @vscode: VS Code ゚ディタ自䜓 コマンドず機胜に぀い お知っおおり、それら 䜿甚を支揎できたす。 • @terminal: に 、統合タヌミナル シェルずそ 内容に関 するコンテキストが含たれおいたす。 @workspace version1.86 @vscode @terminal
  13. スラッシュコマンド Copilot がより適切な回答を提䟛できるよう、スラッシュコマン ドを䜿甚しお質問 範囲ず意図を瀺すこずができたす。 代衚䟋 • /explain: コヌドを解説する •

    /fix: バグや゚ラヌ 修正を実斜 • /tests: 単䜓テストや機胜テストを䜜成 • /new: 新しいプロゞェクト テンプレヌトを䜜る そ 他拡充されたす /explain version1.86 /fix /newChat /tests
  14. コンテキスト倉数 Copilot がより適切な回答を提䟛できるよう、 コンテキスト倉数を䜿甚しお質問 範囲ず意図を瀺すこずができた す。 • #editor: ゚ディタ äž­

    • #file: 特定 ファむルを指定 • #selection: 遞択゚リア • #terminalLastCommand: 最埌 タヌミナルコマンド • #terminalSelection: タヌミナル 遞択゚リア Release: https://code.visualstudio.com/updates/v1_86 #editor version 1.86 #file #selection #terminalLastCommand #terminalSelection
  15. #editor コンテキスト倉数 以前 、アクティブなコヌド ゚ディタヌから 2 皮類 コンテ キストがデフォルトでチャット リク゚ストに含たれおいたした。

    1. テキスト遞択があった堎合、そ 遞択が含たれる 2. 遞択がなかった堎合 、アクティブな゚ディタヌ 衚瀺 ビュヌポヌト内 コヌド範囲が含たれる 珟圚 2 においお、デフォルトで ビュヌポヌトにコヌドを含め ず、遞択されたコヌド みを含めるこずを実隓しおいたす。 䞀方で゚ディタヌに衚瀺されるコヌドに぀いお質問したい堎 合がよくあるため、新しいコンテキスト倉数 を远加したした。 Release: https://code.visualstudio.com/updates/v1_86 #editor version 1.86
  16. “Hey Code” 音声コマンド accessibility.voice.keywordActivation 蚭定により、VS Code が ”Hey Code”音声 コマンドを聞き、Copilot

    Chat ず 音声セッ ションを開始できるようになりたす。音声認 識 マシン䞊でロヌカルに蚈算され、サヌ バヌに送信されるこず ありたせん。 チャットビュヌからボむスチャットを開始 クむックチャットコントロヌルからボむスチャットを開始 ゚ディタヌ むンラむンチャットからボむスチャットを開始 フォヌカスによっお、むンラむン チャットず チャット どちらかが自動で開始 chatInView quickChat inlineChat chatInContext Requirements: Copilot Chat, VS Code Speech Release: https://code.visualstudio.com/updates/v1_86 version 1.86
  17. むンラむンチャット ホヌルドしお話すモヌド ⌘+I むンラむン チャットに「ホヌルドしお話す」機 胜が远加されたした。これ 次 ように機 胜したす。 •

    ショヌトカットでむンラむン チャットをト リガヌしたす • キヌを抌したたたにするず、音声録音 が自動的に開始されたす • キヌを攟しお蚘録を停止し、リク゚スト を Copilot に送信したす Requirements: Copilot Chat, VS Code Speech Release: https://code.visualstudio.com/updates/v1_86 Ctrl+I inlineChat.holdToSpeech version 1.86
  18. むンラむンチャット クむックボむス 「ホヌルドしお話す」 に加えお、こ 機胜 よ り軜量な代替 UI を実隓䞭です。ショヌトカット を抌し続けるず、クむックボむスがアクティブに

    なりたす。 ホルダヌを抌しおいる間 I、より軜量な録音 UI が衚瀺されたす。解攟されるず、リク゚スト が送信されたす。 Release: https://code.visualstudio.com/updates/v1_86 ⌘+K Ctrl+K そしお、 を抌し続ける I version 1.86
  19. Copilot デザむンパタヌン 䞀貫性 • AI が理解可胜な呜名芏則 • 䞀貫性 あるコヌディングスタむル アヌキテクチャ

    • ハむレベルアヌキテクチャを先に • コンテキストレス・アヌキテクチャ • 小さなコヌドチャンクで䜜業する 再利甚可胜性 • 埮现な OSS 䟝存関係 排陀 • むンナヌ゜ヌス
  20. チヌム コラボレヌション for Copilot コヌドに倉換可胜な開発リ゜ヌス䜜成 • AIフレンドリヌなドキュメンテヌション • Copilot Enterprise

    向けリ゜ヌス GitHub 集積 コヌチング / 育成 • プロンプト コヌチング 共有 / 発展 • プロンプトプラクティス 共有 • プロンプトリポゞトリ
  21. テスト & リファクタリング テスト • テストコヌド 生成方法を指定 • 出力ケヌス数を数で指定 •

    自然蚀語からテストケヌス 蚘茉を じめる リファクタリング • オヌプンク゚スチョンで尋 る • ロゞック 分離で、生成時 䞍可䟵領 域を䜜る
  22. たずめあたり気にしすぎない • 「知っおいる」ず「知らない」で GitHub Copilot 飌い慣らしに差 でたすが、 GitHub で それを意識しないでも高いコヌド提案ができるようにプロダクトを䜜っおいたす。

    • 結局 ずころ「良いコヌディング」をすれ 、 提案されるコヌドも「良いコヌド」になりたす。 ◩ 人間にずっお良いコヌディング ◩ 文脈を知らない人でもわかるようなコヌディング ◩ ミスを誘発しないような確かなコヌディング