見出し画像

GitHub Copilotを初めて使ってみる #2.基本利用編

前回の「#1.導入編」の続きとなります。

5. GitHub Copilotコード自動生成

さて、ここからはGitHub Copilotの真骨頂である「コード自動生成」の機能に焦点を当てていきます。前回は簡単な関数を生成しましたが、今回は少し複雑な処理を含むコードを生成してみましょう。

例えば、以下のようなケースを考えてみます。

タスク: ユーザーが入力した文字列を逆順にし、特定の単語が含まれている場合はその単語をハイライトする機能を作成したい。

この場合、コメントとして以下のように記述します。

# 文字列を逆順にし、特定の単語をハイライトする関数
# 引数: text(文字列)、highlight_word(ハイライトする単語)
# 戻り値: ハイライトされた文字列

GitHub Copilotは、次のようなコードを生成してくれるでしょう。

def highlight_word_in_reverse(text, highlight_word):
    reversed_text = text[::-1]
    highlighted_text = reversed_text.replace(highlight_word[::-1], f"*{highlight_word[::-1]}*")
    return highlighted_text

このコードでは、まず文字列を逆順にし、次に指定された単語が含まれている場合、その単語をハイライトしています。このように、Copilotは複雑なロジックを持つコードも簡単に生成することができます。

VSCodeで適当にファイルを作成して、#コメントを入力するとGitHub Copilotからの提案を受け、TABキーで確定していく、ESCキーでキャンセルなど
半自動生成されたコードを実行し、結果を確認する

6. GitHub Copilotテストコード自動生成

アプリケーション開発において、テストコードの重要性は言うまでもありません。GitHub Copilotは、テストコードの自動生成にも対応しています。例えば、先ほどの関数に対するテストコードを自動生成させてみましょう。

テストコードを生成したい場合、以下のようにコメントを書きます。

# highlight_word_in_reverse関数のテストコード

このコメントに基づいて、Copilotは次のようなテストコードを提案するかもしれません。

def test_highlight_word_in_reverse():
    assert highlight_word_in_reverse("hello world", "world") == "dlro*w* olleh"
    assert highlight_word_in_reverse("python programming", "python") == "gnimmargorp *nohtyp*"
    assert highlight_word_in_reverse("github copilot", "pilot") == "tolip *po*htig"
    assert highlight_word_in_reverse("no match", "test") == "hctam on"

このように、テストコードも自動生成できるため、手動で一行一行書く手間が大幅に削減されます。

7. GitHub Copilot Chat

GitHub Copilotのもう一つの強力な機能が「Copilot Chat」です。Copilot Chatは、AIとの対話を通じてコーディングをサポートする機能で、具体的な質問に答えたり、コードの問題を解決する手助けをしてくれます。

例えば、以下のように質問することができます。

この関数にバグがあるかどうか教えてください。

すると、Copilotはその関数を解析し、潜在的なバグや改善点を提案してくれる場合があります。また、特定のタスクに対する最適なアプローチについて相談することも可能です。

この機能は、特に複雑なロジックや、慣れないフレームワークを使用する際に非常に役立ちます。

VSCodeの左メニューからGitHub Copilot Chatを選択
下の小窓から「/help」と打つと簡単な使い方が表示
ソースコード編集中にCommand+i(mac)、Ctrl+i(Windows)キーでもGitHub Copilot Chatが起動
ソースのある部分を選択して、コメントの挿入(自動)も可能
提案されたコメントが英語の場合、日本語もリクエスト可能
提案に同意する場合(ソースコードに反映)同意するを押下

8. GitHub Copilot ドキュメント生成

最後に、GitHub Copilotを使ってコードのドキュメントを自動生成する方法について紹介します。コードに適切なコメントやドキュメントがないと、後からのメンテナンスや他の開発者との共有が難しくなります。Copilotは、ドキュメントの生成も支援してくれます。

例えば、以下のように簡単なコメントを書いて、関数の説明を生成させることができます。

# 関数の説明
# 入力: なし
# 出力: "Hello, World!"を返す関数

このコメントを基に、Copilotは次のようにドキュメント化された関数を生成します。

def say_hello():
    """
    "Hello, World!" を返す関数
    
    引数:
        なし
    
    戻り値:
        str: "Hello, World!" という文字列を返します。
    """
    return "Hello, World!"

このように、関数のドキュメントを自動生成することで、コードの可読性や保守性が大幅に向上します。

GitHub Copilot Chatでドキュメントを書いてもらう
例えばMarkdown形式にしてファイルに出力する
プレビューで表示してみる

これで、GitHub Copilotの主要な機能を一通りカバーしました。GitHub Copilotは、コーディングのあらゆる段階で役立つツールであり、開発プロセス全体を加速させる力を持っています。この記事を参考に、ぜひGitHub Copilotを活用してみてください。


いいなと思ったら応援しよう!