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

ソフトウェア開発におけるAI :CopilotとGenie

Senoue
September 15, 2023

ソフトウェア開発におけるAI :CopilotとGenie

外部セッション

Senoue

September 15, 2023
Tweet

More Decks by Senoue

Other Decks in Programming

Transcript

  1. ソフトウェア開発におけるAI
    :CopilotとGenie
    瀬上祐匡
    2023/9/15

    View full-size slide

  2. イントロダクション

    View full-size slide

  3. 1. AIとソフトウェア開発
    a. Copilotの紹介
    b. Genieの紹介
    2. ソフトウェア開発におけるAIの役割
    3. 現在のAI技術がソフトウェア開発者をどのようにサ
    ポートしているか

    View full-size slide

  4. 瀬上 祐匡(せのうえ ひろまさ)
    株式会社ビデオマーケット
    バックエンドエンジニア
    ● GCP, Go, Python等,BI,データ分析
    ● @senoue,@hiromasa.senoue
    ● モノノフです。
    ● 好きなものは、Cloud Function
    ● Sendai.go (毎月)やってます
    自己紹介
    株式会社ビデオマーケット
    TVOD(都度課金)を軸とした動画配信サービス
    映画、アニメ、ドラマなど多彩なジャンルで配信本数は
    国内最大級
    自社が開発した独自エンコード方式で高品質な動画を提供

    View full-size slide

  5. AIとソフトウェア開発

    View full-size slide

  6. - Github Copilot
    AIによって支援されたコーディングアシストツールです。
    開発者がコードを書く際に、自動的に提案や補完を行うことで効率的なプログラミングをサポートし
    ます。
    GitHub Copilotは、機械学習に基づいてトレーニングされた大規模なコードのデータセットから学
    んでおり、ユーザーの入力に基づいて次のコードの行や式を予測します。
    具体的には、変数や関数の名前、条件文、ループ、例外処理など、さまざまなコーディングパター
    ンを認識して提案します。
    Copilotの目的は、開発者の生産性を向上させ、繰り返し行われる単純な作業を削減することで
    す。ただし、最終的な意思決定は開発者が行い、コードの品質とセキュリティに注意する必要があ
    ります。
    GitHub CopilotはVisual Studio Codeエディターの拡張機能として利用できます。
    有効なライセンスを持つ GitHubアカウントを使用して利用できます。

    View full-size slide

  7. - Genie
    - Genieはあなたのコーディングに関する質問や支援を提供する
    AIアシスタントです。
    私はエキスパート開発者であり、常に正しい回答を提供し、指示された通りに行動します。
    私は知識豊富で助成的な存在であり、あなたがプログラミングに関して補完やアドバイスが必要な場合に役立
    ちます。
    - 他にも
    - Codex
    - TabNine
    - など
    - https://tiisaku.com/sophisticated-ai-technologies-from-code-completions-to-gpt-3/#toc5

    View full-size slide

  8. ソフトウェア開発におけるAIの
    役割

    View full-size slide

  9. - コード生成と補完:
    - ユーザが一部のコードを入力するとすぐに、残りの部分を予測して追加す
    ることができます。
    これは時間を節約し、開発者がより生産的になるのに役立ちます。例え
    ば、GoogleのCodotaやKiteなどのツールがあります。
    - バグ検出と修正:
    - コードをスキャンし、バグや脆弱性を自動的に見つけることができます。
    一部の高度なツールは、問題を修正するための提案も行います。
    DeepCodeやBugspotsなどのツールが存在します。

    View full-size slide

  10. - テスト:
    - 自動テスト生成を補助することができます。それは複雑なシナリオを考慮
    に入れ、適切なテストケースを自動的に生成します。このようにして、品質
    保証プロセスが高速化され、全体的なコードの品質が向上します。例
    :JUnit, Test.aiなど。
    - 要件分析と設計輔助:
    - ユーザーの要求を理解し、それに基づいて機能仕様や設計案を提供する
    ことができます。これは開発プロセスの初期段階で非常に役立ちます。
    - プロジェクト管理:
    - プロジェクトの進行状況を監視し、リソースの最適な割り当て、タスクの追
    跡、問題解決の助けとなります。

    View full-size slide

  11. 現在のAI技術が
    ソフトウェア開発者を
    どのように
    サポートしているか

    View full-size slide

  12. - コーディングのデモ
    - VScodeでのCopilotとGenieのデモします。
    - 一般的なコーディングサポート
    - Copilot
    - APIサーバ
    - Genie
    - UML作成
    - 基本設計
    - 単純な簡素化
    - DDL作成
    - User Table
    - DDLから型の作成
    - Goの型
    - コードレビュー
    - コードレビュー、Typo
    - アプリケーション
    - 公開

    View full-size slide

  13. - 正しく利用する
    - 個人情報の漏洩なんてのもすぐできるので気をつけよう
    - Excelなんかでも使えるので、今後どうするか
    - 100%は得られないので、基礎知識も大切です・
    - Sendai.goでは、毎月コードリーディングを行っています、興
    味のあるかたは参加お待ちしています。

    View full-size slide

  14. - ご清聴ありがとうございました。
    - ご質問など、あれば

    View full-size slide