[コーディング学習]GitHub Copilot Chatを使ってみる

ChatGPT

VSCodeを使った活用術

イントロダクション

GitHub Copilot Chatは、プログラミングの新たな次元への扉を開く画期的なツールです。コード補完ツールとして知られるGitHub Copilotが、チャット形式で開発者にコードの提案や生成を行う機能を追加したものです。

プログラマーが日々直面する課題や疑問に対して、Copilot Chatが直感的かつ迅速に応答し、開発プロセスを大幅に効率化します。

この革新的なツールは、AIが理解したテキストベースのクエリに基づいて、リアルタイムでコードを生成します。ユーザーは通常のテキスト入力の感覚で、Copilot Chatに質問やコードの補完をリクエストできます。これにより、開発者は手間のかかるコードの記述から解放され、より創造的で高度なプログラミングに注力できます。

Copilot Chatは様々なプログラミング言語に対応し、新しいプロジェクトの構築や既存のコードベースのメンテナンスをサポートします。本記事では、Copilot Chatの基本的な使い方や機能設定、トラブルシューティングまでを紹介します。さあ、Copilot Chatの魅力的な世界に一緒に飛び込んでみましょう。

GitHub Copilot Chatのインストール

GitHub Copilot Chatを使うにあたっての環境を整えるためにGitHubのアカウント作成が必要になります。GitHubのアカウントを作成終了後、GitHub Copilotの導入までを解説したページを用意しましたのでご確認ください。

GitHub Copilotの利用手続きを行なった後、VSCodeの拡張機能からGitHub Copilotをインストールし、「GitHubCopilot」が使えるようになったら、次はVSCodeの拡張機能から「GitHub Copilot Chat」のインストールを行います。

インストールが終わったらVSCodeのサイドバーに吹き出しのアイコンがあるのでクリックするとChatGPTに近いチャットが表示されます。

基本的な使い方

実行済みのコードに対する説明

使い方を説明するにあたって、例として3つの正規分布を描画してみます。

x = np.linspace(-5, 15, 100)
y = stats.norm(loc=10, scale=3).pdf(x)
y2 = stats.norm(loc=8, scale=3).pdf(x)
y3 = stats.norm(loc=8, scale=1).pdf(x)
plt.plot(x, y)
plt.plot(x, y2)
plt.plot(x, y3)

チャットを使って、コードの説明を依頼すると以下のような返答がありました。

このPythonコードは、正規分布の確率密度関数(PDF)を描画しています。

1行目: `x = np.linspace(-5, 15, 100)` は、-5から15までの範囲を100等分した数列を生成します。

2行目: `y = stats.norm(loc=10, scale=3).pdf(x)` は、平均値(loc)が10、標準偏差(scale)が3の正規分布の確率密度関数を計算します。

3行目: `y2 = stats.norm(loc=8, scale=3).pdf(x)` は、平均値が8、標準偏差が3の正規分布の確率密度関数を計算します。

4行目: `y3 = stats.norm(loc=8, scale=1).pdf(x)` は、平均値が8、標準偏差が1の正規分布の確率密度関数を計算します。

5-7行目: `plt.plot(x, y)`、`plt.plot(x, y2)`、`plt.plot(x, y3)` は、それぞれの正規分布の確率密度関数をプロットします。

単純なコードですが、正しく言語化されていますね。

コードのリファクタリング

次はPythonのif文を関数を使ったコードへリファクタリングしてもらうことにします。

if文を関数にリファクタリングしてもらうことができました。

def check_conditions(x, y, z):
    if x > 5 and y < 25 and z == 5 and x > 7 and y < 15:
        return "条件に合致しました!"
    else:
        return "条件に合致しませんでした。"

上記の関数を使用すると以下のようになります。

print(check_conditions(10, 10, 5))  # 条件に合致しました!
print(check_conditions(5, 30, 5))   # 条件に合致しませんでした!

簡単に関数化できました。これを応用するとPythonの基礎を知っておくだけでも、Pythonの関数の勉強をCopilot Chatを使って学ぶことができそうです。

jupyter AIでも同じようなチャットが可能です。

スラッシュコマンド

「スラッシュコマンド」を使用して質問のトピックを選択することもできます。

スラッシュコマンド内容
/explain 選択したコードがどのように機能するかを段階的に説明
/fix選択したコードのバグの修正を提案
/helpGitHub Copilotに関する一般的なヘルプを出力
/tests選択したコードの単体テストを生成
/vscodeVSCode のコマンドと設定に関する質問
/clearセッションをクリア
/explain の場合

右のコードを段階的に説明してくれています。

/fixの場合

コードエラーの箇所を修正してくれています。

インラインチャット

コード上で ⌘ + I を押すと「インラインチャット」が表示されます。コーディングについての補足などの際に使うと有効利用ができそうです。

クイックチャット

Shift + ⌘ + I を押すと画面上部にクイックチャットが表示されます。

ベストプラクティスと注意点

Copilot Chatを効果的に利用するために気を付けるべきところを挙げてみます。

コードのコンテキストを理解する

Copilot Chatはコンテキストに基づいてコードを生成します。より具体的な質問やタスクの文脈を提供すると、より適切なコードが生成されやすくなります。質問やリクエストをできるだけ具体的にしましょう。

提案されたコードの検証

Copilot Chatが提案したコードをそのまま採用する前に、注意深く検討し、生成されたコードがプロジェクトのスタイルガイドに従っているか、意図した動作をするか確認し、必要に応じて修正や調整を行います。

コードの変更に柔軟に対応

Copilot Chatが生成したコードは、柔軟に変更できるようにしましょう。自分のプロジェクトに最適な形に変更するために、提案されたコードの構造や変数名を理解し、必要に応じて変更を加えましょう。

開発環境での実験

Copilot Chatで生成されたコードは、実際の開発環境でテストしてみることが重要です。提案されたコードが期待通りに動作するかどうかを確認し、必要に応じて修正やデバッグを行いましょう。

コードコメントの追加

Copilot Chatが生成したコードが複雑な場合、コメントを追加してコードの理解を補完しましょう。他の開発者や将来の自分がコードを理解しやすくなります。

インタラクティブな対話を試す

Copilot Chatは対話的な形式でも利用できます。疑問や要望を対話形式で入力し、Copilotによる迅速なコード提案を取得することで、開発効率を向上させることができます。

セキュリティへの注意

Copilot Chatはオープンソースのコードを学習したAIモデルですが、セキュリティ上の懸念がある場合、機密情報やセキュリティ上のリスクを含むコードを生成しないよう注意しましょう。

トラブルシューティング

GitHub Copilot Chatを使用する際に遭遇するかもしれない一般的な問題やエラーメッセージに対する対処法やトラブルシューティングのヒントを以下に挙げておきます。

問題:Copilotが期待通りのコードを生成してくれない

対処法

質問やクエリをより具体的にしたり不足している情報を追加することで、Copilotがより正確なコードを生成する可能性が高まります。

問題:Copilotが間違ったコードを提案してしまう

対処法

提案されたコードをよく確認し、間違いがあれば手動で修正しましょう。また、コメントを追加してCopilotに対して明確な指示を行うことも有効です。

問題:Copilotが無限ループに陥ってしまう

対処法

Copilotが理解できない質問や、意味の不明確なクエリを避けましょう。また、コードの一部を切り詰めて小さなスニペットから始め、徐々に拡大していくことで問題が解決することがあります。

問題:Copilot Chatがレスポンスが遅い

対処法

インターネット接続の問題がないか確認しましょう。また、Copilot Chatのサーバーに負荷がかかっている可能性も考えられます。しばらく待ってみて、問題が解消しない場合はGitHubのサポートに問い合わせましょう。

問題:コードが正しく動作しない

対処法

Copilotが生成したコードが期待通りに動作しない場合、生成されたコードを検証し、必要に応じて修正や調整を行いましょう。必要に応じて他の開発者やコミュニティに助言を求めることも有益です。

まとめ

GitHub Copilot Chatは対話形式でコードを生成し、学習に利用したり、開発者が自然な言葉でコードをリクエストできます。

将来では言語サポートの拡充や性能向上が期待され、ユーザーフィードバックの反映や新しい機能の追加に注力されるでしょう。

Copilot Chatを使う際は、コードの検証や柔軟な変更、セキュリティへの注意が重要です。これにより、効果的かつ安全にツールを活用し、革新的なプログラミング体験を享受することができます。

コメント

タイトルとURLをコピーしました