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

GitHub Copilot Workspace で我々のアプリ開発がどう変わるのか?

ShuyaKinjo
September 25, 2024

GitHub Copilot Workspace で我々のアプリ開発がどう変わるのか?

CATs #2 :AI駆動型開発の最前線:GitHub Copilot Workspace、Claude、Bedrockが変える開発スタイルの登壇資料です。

・セッション概要
GitHub Copilot Workspaceは作成したIssueを元に、AIが必要なタスクを分解し、実行計画を立て、仕様策定・実装までを行なってくれる新しい開発のプラットフォームです。現在はプレビュー中のこの機能を使い、これからの開発スタイル、我々が求められるスキルがどう変わるのかを検証してみました。

ShuyaKinjo

September 25, 2024
Tweet

More Decks by ShuyaKinjo

Other Decks in Programming

Transcript

  1. ⾃⼰紹介 2 ⾦城 秀哉(Shuya Kinjo) • クラスメソッド株式会社 ◦ リテールアプリ共創部 マッハチーム

    • サーバーサイドエンジニア • 興味‧関⼼ ◦ IaC、CI/CD、⽣成AIアプリ開発 @joe-king-sh
  2. GitHub Copilotの歴史 6 • 2021年6⽉29⽇ ◦ VS Code向けにGitHub Copilotのテクニカ ルプレビューを発表

    • 2022年6⽉21⽇ ◦ テクニカルプレビューを終了し、個⼈開発 者向けの有償サブスクリプションサービス として⼀般提供開始
  3. GitHub Copilotの歴史 7 できること • コードの先読み補完 できないこと • こちらから明確な指⽰出し ◦

    出だしを書く ◦ コメントを先に書く ▪ など、⼯夫が必要 • 2021年6⽉29⽇ ◦ VS Code向けにGitHub Copilotのテクニカ ルプレビューを発表 • 2022年6⽉21⽇ ◦ テクニカルプレビューを終了し、個⼈開発 者向けの有償サブスクリプションサービス として⼀般提供開始
  4. GitHub Copilotの歴史 8 • 2021年6⽉29⽇ ◦ VS Code向けにGitHub Copilotのテクニカ ルプレビューを発表

    • 2022年6⽉21⽇ ◦ テクニカルプレビューを終了し、個⼈開発 者向けの有償サブスクリプションサービス として⼀般提供開始 • 2023年3⽉22⽇ ◦ GitHub Copilot Xの発表 ▪ GitHub Copilot chat ▪ GitHub Copilot for docs ▪ GitHub Copilot for pull requests ▪ GitHub Copilot for CLI ▪ GitHub Copilot Voice
  5. GitHub Copilotの歴史 9 • 2021年6⽉29⽇ ◦ VS Code向けにGitHub Copilotのテクニカ ルプレビューを発表

    • 2022年6⽉21⽇ ◦ テクニカルプレビューを終了し、個⼈開発 者向けの有償サブスクリプションサービス として⼀般提供開始 • 2023年3⽉22⽇ ◦ GitHub Copilot Xの発表 ▪ GitHub Copilot chat ▪ GitHub Copilot for docs ▪ GitHub Copilot for pull requests ▪ GitHub Copilot for CLI ▪ GitHub Copilot Voice できること • コードの先読み補完 • ⽣成内容を明確に指⽰ ◦ 〇〇を××に変更して ◦ △△を参照して ◦ テストを書いて • VS Code上でCopilotと会話 ◦ このコードを説明して ◦ このエラーの原因は? できないこと • コードの断⽚以上の⽣成 ◦ 複数ファイルの修正
  6. • 以下の流れで開発を進める ◦ Issue ▪ タスクの指⽰ ◦ Specification ▪ Copilotと仕様策定

    ◦ Plan ▪ Copilotと変更計画 ◦ Implement ▪ Copilotと実装 GitHubが提供する全く新しい統合開発環境 15
  7. • 以下からセッションを開始可能 ◦ GitHub Issue ◦ Pull Request ◦ リポジトリを指定して、ア

    ドホックタスクの開始 GitHubが提供する全く新しい統合開発環境 16
  8. • As-Is ◦ openapi.yamlはリポジトリに存在し ない • To-Be ◦ ルートにopenapi.yamlを含んでいる ◦

    OpenAPI 3.0.3で仕様を書いている。 ◦ 登録、取得、更新、削除のエンドポイ ントを含んでいる。 ◦ TODOのアイテムは id,title,content,status,createdAtを含 んでいる。 Copilotと仕様策定 18
  9. • openapi.yamlファイルを追加する ◦ OpenAPIを3.0.3で定義する ◦ info section ▪ title, description,

    versionを 記述する ◦ paths ▪ 登録、取得、更新、削除を ⽤意する ◦ components ▪ TODO itemを id,title,content,status,createdAtでス キーマ定義する Copilotと変更計画 19
  10. Issueを詳細化してタスクを丸投げしてみた 38 • 提案仕様、変更計画のレビューが難 しい ◦ Issueで指⽰は出しているが、仕 様にはなく、実装には含まれる • 細かい点まで指⽰が難しい

    ◦ ⾔語やライブラリのバージョン が全体的に古め ◦ 指⽰漏れが発⽣ • 変更内容が⼤きく扱い⾟い ◦ テストが動くまでが⼤変 ◦ PRがレビューし⾟い
  11. 既存プロジェクトへの機能追加を試してみた 43 • 既存コードを読み設計⽅針を理解した上で提案 ◦ 設計⽅針などは既存コードのコンテキストの⽅が意図が明確に伝わる ◦ 現在のコンテキストはセッションを実⾏する1リポジトリに閉じるので、複数リ ポジトリやナレッジベースの参照に期待(ドキュメントも読ませたい) •

    良く把握したリポジトリであることが前提 ◦ 変更仕様をいきなり提案されてもレビューができない ◦ 別途コードリーディングが必要 • ⽣成されるコードの品質はさらに改善を期待 ◦ シンタックスエラーを含む提案も ◦ どこまで指⽰を出し、どこから⾃分で書くか迷う ◦ 途中で仕事を奪えるのはAIとのペアプロならでは
  12. その他注意点 44 • テクニカルプレビューの現時点では英語のみ対応 ◦ ⽇本語で指⽰出しは可能だがCopilotからは英語で提案 ◦ Enterキー変換を待たずに送信 • コード⽣成の待ち時間

    ◦ 指⽰→再⽣成のループを回す上でコード⽣成のスピードは重要 ◦ 今後はビルド時間に加えてコード⽣成時間も待つように?
  13. まとめ 46 • GitHub Copilot Workspaceは新しい統合開発環境 • Copilotが開発プロセスを広くサポートしてくれるが丸投げはできない ◦ Issueの⾒極めと切り出し、AIの提案をコードレビュー、必要に応じ

    て⼿直しする技術は引き続き重要 ◦ 開発プロセス、扱うツールが変わるので適応する必要あり • 現時点ではテクニカルプレビュー ◦ GAまでにコード⽣成の品質向上や参照するコンテキスト追加を期待 ◦ 触りたい⽅はwait listへ登録を!