LoginSignup
7
6

GitHub CopilotとGitHub Copilot Chatのはじめ方

Last updated at Posted at 2023-10-03

これは何

GitHub Copilot、GitHub Copilot Chatについて、自分の使い方や意識していることをまとめたもの

GitHub Copilot

  • GitHubとOpenAIが共同で開発したAI駆動のコーディングアシスタント

主な使い方

  • 補完
    • 書いてるところから、どんどんサジェストしてくれる
      • 特にimportなどの定型的な部分、簡単な正規表現などはサジェスト強い
    • Tabでサジェスト内容を適用する
    • Escでサジェスト内容を棄却出来る
    • Command + →でワードごとの適用
    • Option + [Option + ]で代替サジェストを見ることができる
  • Quick QA
    • コード上のコメントでQAが出来る
# me: 現在の時刻を取得するにはどうすると良い?
# copilot: Time.now

# 下記のようにも書き換えできる

# q: 現在の時刻を取得するにはどうすると良い?
# a: Time.now

roleをつけることも出来ますが、あまりプログラミングに関係ない内容は省かれているかもしれません

  # Roles: copilot
  #   Rubyのexpertなお嬢様です、語尾にですわをつけるのが特徴です
  # Role: me
  #   初心者エンジニア
  #
  # me: このscopeの意味がわかりません
  # copilot: このscopeは、指定した月の範囲内に作成されたrecordを取得するためのscopeです
  scope :hogehoge, ->(month) {
    where("created_at >= ? AND created_at <= ?", month.beginning_of_month.to_i, month.end_of_month.to_i)
  }

GitHubのアーキテクトの方が個人でGitHub Copilotの使い方をまとめてくれているので、見てみると面白いです。

上手な使い方

公式のブログなどから、情報を得ている

  • コメントファーストで考える
    • 自然言語でコメントして、対話をする
      • 最初は面倒、コード書いたほうが早いかもだが、自身の整理にも繋がるので、全てが悪いわけではないと思う
  • Copilotに必要なファイルはタブで開いておく
    • GitHub CopilotがContextとして、読み込んでくれるファイルは下記
      • ワークスペース内のファイル
      • 編集中のファイル(ワークスペース外でも)
  • Rails開発におけるCopilotの活用をまとめてくれてる方もいらっしゃる

GitHub Copilot Chat

  • 対話型のインターフェース

  • GitHub Copilotとの違いって何?

    • 内部で使用されているLLMが異なる
      • GitHub Copilot: Codex(GPT-3がベース)
      • GitHub Copilot Chat: GPT-4
  • ChatGPTとの違いって何?

    • VSCode上で対話ができるので、スムーズ
    • 開いているファイル、選択しているコードをcontextとして読み取って、やり取りをしてくれる
      • ChatGPTにcontextを説明するよりは楽に感じる
    • コードに対して特化した/コマンドの存在

主な使い方

  • /コマンドを使う
    • /explain
      • コードに対する説明をしてくれる
      • /explain 日本語で とか、/explain-jaで日本語出力される
    • /tests
      • テストコードをサジェスト
    • /fix
      • リファクタ案を出してくれる
  • 開発に関わる質問

実際に聞いてみた

上手な使い方

  • 基本的にChatGPTのプロンプトをイメージすると良さそう

  • 開発に関わるやり取りはできるので、勉強会などでメモ取る時にわからない単語聞いたりなどは、結構やります。

    • 発表者とVSCodeに集中できるので個人的にとても助かっています。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6