GitHub Copilotの無料版を試す準備はできましたか?
今すぐGitHub Copilotを使い始めましょう。

GitHub Copilot は、IDE でのトラブルシューティング、プルリクエストの分析などにより、デバッグプロセスを合理化し、より迅速かつ堅牢に問題に取り組むことができます。
デバッグは開発者のワークフローに欠かせない作業ですが、最も時間がかかる作業のひとつでもあります。もしAIがこのプロセスを効率化し、コードの分析、修正、文書化をより速く行う手助けをしてくれるとしたらどうでしょうか?AIを搭載したコーディングアシスタント、GitHub Copilotがお助けします。
GitHub Copilot はコードを書くためだけのものではなく、デバッグのための強力なツールでもあります。IDE でのトラブルシューティング、/fix
などの GitHub Copilot Chatのスラッシュコマンドの使用、github.com でのプルリクエスト (PR) のレビューなど、GitHub Copilot は柔軟でインテリジェントなソリューションを提供し、デバッグプロセスをスピードアップします。GitHub Copilotの無料版は、すべてのGitHub個人アカウントで利用できるため、すぐに機能を試すことができます。
このガイドでは、GitHub Copilot を使ってコードをデバッグする方法、ワークフローで使用する場所、機能を最大限に活用するためのベストプラクティスについて説明します。GitHub Copilot を初めて使う人も、スキルを深めたい人も、このガイドが参考になれば幸いです。
GitHub Copilot でコードをデバッグ:サーフェスとワークフロー
GitHub Copilot を使ってコードをデバッグすると、コードベースに対する理解を深めながら、問題に素早く取り組むことができます。構文エラーの修正、非効率なコードのリファクタリング、予期せぬ動作のトラブルシューティングなど、GitHub Copilot はデバッグの過程で貴重な洞察を与えてくれます。
シニアデベロッパーアドボケイトのChristopher Harrisonによると
「GitHub Copilot はパターンを認識し、学習したことに基づいて解決策を提案します。問題箇所を特定したら、GitHub Copilotに尋ねてみてください。”この入力を与えているのに、この出力が返ってくるのですが、何が間違っているのでしょうか?” GitHub Copilotの力の見せ所です。」
GitHub Copilotが、IDEからgithub.com、さらにはプルリクエストまで、さまざまな場面でコードのデバッグにどのように役立つかを探ってみましょう。
1.GitHub Copilot Chat
GitHub Copilot Chatは対話型のAIアシスタントとして機能し、自然言語による問い合わせで問題のデバッグを支援します。GitHub Copilot Freeでは、毎月50件のチャットメッセージを利用できます。GitHub Copilot Chatを使用すると、次のことができます:
- リアルタイムで説明してもらう: この関数はなぜエラーを吐き出すのですか」と尋ねると、GitHub Copilot Chatがコードを解析して洞察を提供します。
- デバッグにはスラッシュコマンドを使用します:
/fix
を使用して潜在的な解決策を生成したり、/explain
を使用して複雑な関数を段階的に分解したりできます。(これについては後で詳しく説明します!) - 効率化のためにコードをリファクタリングする:実装が混乱していたり非効率的な場合、GitHub Copilot Chatはよりクリーンな代替案を提案します。リファクタリングによってコードの可読性が向上し、開発者とGitHub Copilotの両方が理解しやすくなります。コードが理解しやすくなれば、デバッグや問題の発見もしやすくなります。
- 対話形式でエラーを解決:IDEを離れることなく、チャットで問題を説明し、カスタマイズされたガイダンスを受けることができます。
2.IDEで
VS CodeやJetBrainsなどの一般的な IDEで作業している場合、GitHub Copilotは入力中にリアルタイムでコードを提案してくれます。以下のような機能があります:
- 問題のフラグを立てる:例えば、変数を宣言したのに初期化し忘れた場合、GitHub Copilotが修正を提案します。
- コードの修正:構文エラーが発生した場合。GitHub Copilotは数秒で修正を提案し、エラーのないコードを維持します。
- 状況に応じた支援:ワークスペースを分析することで、GitHub Copilotはコードベースやプロジェクトの構造に合わせたソリューションを提供します。
3.github.com
GitHub CopilotはIDEの枠を超え、GitHub Copilot Chatを通じて github.com 上で直接デバッグ支援を提供します。この機能を使用すると、次のことができます:
- リポジトリ内のコードのトラブルシューティング:ファイルを開き、問題のあるセクションをハイライトし、GitHub Copilot Chatを使用して解析します。
- テストケースの生成:関数の検証方法がわからない場合、GitHub Copilot は既存のコードを基にテストケースを提案します。
- 見慣れないコードを理解する:オープンソースのプロジェクトやチームメイトのPRをレビューしていますか?GitHub Copilotに関数の要約やロジックの説明をしてもらいましょう。
4.プルリクエストの支援
GitHub CopilotはPR内のデバッグを効率化し、マージ前にコードの品質を確保することもできます。
- PRのコメントで改善点を提案:GitHub CopilotはPR をレビューし、会話の中で直接修正を提案することができます。
- PR サマリーの作成:変更を説明するのに苦労していませんか?シニア・サービス・デリバリー・エンジニアの Greg Larkin 氏は、次のように述べています。「PR の作成プロセスで GitHub Copilotを使って、自分の機能ブランチの変更点とマージ先のブランチの変更点の要約を作成しています。うまく説明できないときにとても役立ちます。
- 差分を説明する:なぜ変更したのかわからない場合はGitHub Copilot に、コミット間で何が違うのかを要約してもらいましょう。
- マージする前にエッジケースを見つける:
/analyze
を使って潜在的な問題を特定し、/tests
を使って不足しているテストケースを生成しましょう。 - その場でリファクタリングする:PR に冗長なコードや非効率なコードが含まれている場合は、GitHub Copilotが最適な代替案を提案します。
GitHub CopilotをPRのワークフローに組み込むことで、高品質の標準を維持しながらコードレビューをスピードアップできます。最良の結果を得るには、同業者の専門知識と組み合わせるようにしましょう。
GitHub Copilotでコードをデバッグするための5つのスラッシュコマンド
スラッシュコマンドは、GitHub Copilotをオンデマンドのデバッグアシスタントに変え、問題をより早く解決し、より多くの洞察を得て、コードの品質を向上させるのに役立ちます。ここでは、デバッグに役立つスラッシュコマンドをいくつか紹介します:
1.GitHub Copilotの効果的な使い方のガイダンスを得るには /help を使用します。
/help
スラッシュコマンドは、GitHub Copilotの効果的な操作方法に関するガイダンスを提供し、プロンプトの構成、スラッシュコマンドの使い方、GitHub Copilotの機能を最大限に活用するためのヒントを提供します。
- 使い方:GitHub Copilot Chatで
/help
と入力すると、デバッグ、コードの説明、テストケースの生成など、現在のタスクに関する提案を受け取ることができます。 - 例:GitHub Copilotでできることを再確認したいですか?
/help
を使用して、/fix
や/explain
などのスラッシュコマンドのクイックガイドにアクセスします。
2.修正を提案して適用するには /fix を使いましょう
/fix
コマンドは、コードの問題を解決するのに便利なツールです。問題のあるコードのブロックをハイライトしたり、エラーを説明したりすることができます。
- 使い方:問題のあるコードを選択し、
/fix
と入力すると、GitHub Copilot Chat が修正候補を生成します。 - 例:壊れた API 呼び出しがある場合、
/fix
を使用して、適切なヘッダーまたはパラメータを含む修正バージョンを取得します。
3.コードとエラーを理解するには /explain を使用します。
/explain
コマンドは、複雑なコードや不可解なエラーメッセージを、よりシンプルで消化しやすい言葉に分解する。
- 使い方:説明したいコードやエラーメッセージを強調表示し、
/explain
と入力すると、GitHub Copilot Chatが説明を提供します。関数の目的、データの処理方法、潜在的なエッジケース、考えられるバグや問題が説明されます。 - 例:NullPointerExceptionに遭遇しましたか?
/explain
を使用して、例外が発生した理由とその防止方法を理解します。
4.testsを使ってテストを生成する
テストはバグを特定するための鍵であり、/tests
コマンドは、あなたのコードに基づいてテストケースを生成することで役立ちます。
- 使い方:関数またはスニペットで
/tests
を使用すると、GitHub Copilot Chatが関連するテストケースを生成します。 - 例:ソート関数に
/tests
を適用すると、GitHub Copilot Chatは空の配列や NULL 入力などのエッジケースの単体テストを生成するかもしれません。
5.ドキュメントの生成や改善に /doc を使用する
開発者にとっても、GitHub Copilotにとっても、優れたテキストドキュメントを作成することは長期的なメリットがあります。GitHub Copilot Freeで/doc
コマンドを使えば、IDE 内でGitHub Copilotに特定のコードブロックの要約を書かせることもできます。
/doc
コマンドを使用すると、デバッグや他の人との共同作業を行う際に重要な、コードのドキュメントを作成したり洗練させたりすることができます。明確なドキュメントは、トラブルシューティングのためのコンテキストを提供し、問題解決を迅速化し、仲間の開発者があなたのコードをより速く理解するのに役立ちます。
- 使い方:関数、クラス、またはファイルをハイライト表示し、
/doc
と入力して右クリックすると、コンテキスト メニューが表示されます。 - 例:関数に
/doc
を適用すると、GitHub Copilot Chat はその目的、パラメータ、期待される出力の詳細を示すインラインコメントを生成します。
これらのコマンドを使いこなすことで、デバッグのワークフローを効率化し、ツールを切り替えたり、手作業に時間を費やすことなく、問題を迅速に解決できます。
GitHub Copilotでコードをデバッグするためのベストプラクティス
より良い結果を得るために明確なコンテキストを提供する
適切なコンテキストを提供することで、GitHub Copilotはより適切なデバッグ案を生成できるようになります。Christopherの説明では、「GitHub Copilot は、あなたが何をしようとしているのか、それをどのようにしようとしているのかを理解することができればできるほど、より良いレスポンスを返すことができます。」
GitHub Copilotは周囲のスコープ内でコードを分析するので、ファイルが適切に構造化され、関連する依存関係が含まれていることを確認してください。GitHub Copilot Chatを使用している場合は、特定の関数、エラーメッセージ、ログを参照し、一般的な提案ではなく正確な回答を得るようにしましょう。
💡 プロのヒント:複数のファイルにまたがって作業していませんか?@workspace
コマンドを使用して GitHub Copilotに正しい方向を示し、プロンプトと意図した目標に対してより多くのコンテキストを与えます。
リアルタイムで質問、絞り込み、最適化
GitHub Copilotを1回きりのソリューションとして扱うのではなく、行ったり来たりするプロセスを通じて、提案を洗練させましょう。Greg 氏曰く、「GitHub Copilotに、問題を解決する方法やパフォーマンスを分析する方法について、3~4 種類の選択肢を求めると便利だと思います。何を求めているのか、それが速度なのか、メモリ効率なのか、あるいは別の制約なのか、詳しく説明すればするほど、より良い結果が得られます。」
この反復的なアプローチは、あなたが考慮しなかったかもしれない代替の解決策を探るのに役立ち、より堅牢で効率的なコードにつながります。
具体的なプロンプトをマスターする
プロンプトが具体的であればあるほど、GitHub Copilotのレスポンスは良くなります。「この関数はどうなっていますか」と尋ねるのではなく、「入力は有効なのに、なぜこの関数は未定義を返すのですか」と尋ねてみましょう。GitHub Copilotは、明確で詳細なクエリが与えられたときに最高のパフォーマンスを発揮します。
正確なプロンプトを作成し、エッジケースをテストすることで、GitHub Copilotを使用して、本番環境の問題になる前に潜在的な問題を表面化させることができます。
プログレッシブデバッグで構造化されたアプローチを試す
次に、デバッグプロセスに段階的なアプローチを試してみましょう!すぐに修正を適用するのではなく、GitHub Copilotのコマンドを使用して、まず問題を理解し、潜在的な原因を分析し、解決策を実装します。この構造化されたワークフローはプログレッシブデバッグと呼ばれ、問題の根本原因に沿った修正を行いながら、コードをより深く理解するのに役立ちます。
例えば
- 問題のある関数をスラッシュ・コマンド
/explain
で開始し、問題を理解する。 - スラッシュ・コマンド
/startDebugging
を使用して、対話型デバッグの設定を支援します。 - 最後に、スラッシュ・コマンド
/fix
を適用して、修正可能な箇所を生成する。
📌使用例:Reactアプリの関数が期待通りにレンダリングされない場合、関連する JSX またはステートロジックに対して/explain
を実行することから始め、次に/debug
を使用して誤って管理された props を特定し、最後に/fix
を適用して修正された実装を確認します。
よりスマートなワークフローのためにコマンドを組み合わせる
いくつかの問題は、複数のレベルのデバッグと改良を必要とします。コマンドを組み合わせることで、診断から解決までをより速く行うことができます。
例えば
/explain + /fix
を使用して、問題をすばやく理解し、解決する。/fixTestFailure + /tests
を適用して、失敗しているテストを見つけ、新しいテストを生成する。
📌 使用例:
- 壊れた関数を修正する:スラッシュ・コマンド
/explain
を実行して、なぜ失敗するのかを理解し、スラッシュ・コマンド/fix
を使って修正バージョンを生成する。 - テストカバレッジの向上:スラッシュコマンド
/fixTestFailure
を使って、失敗しているテストを特定し、修正する。それから、スラッシュコマンド/tests
を使って、ハイライトされたコードのユニットテストを追加生成する。
スラッシュコマンドが最も効果的なのは、適切なコンテキストで使用し、問題の明確な説明と組み合わせ、体系的なデバッグ手法の一部とし、検証やテストでフォローアップするときであることを忘れないでください。
より良い協力関係を:開発者が操縦席に座るAIツール
GitHub Copilotはワークフローを強化する強力なツールですが、人間の洞察力や批判的思考、コラボレーションの必要性を代替するものではありません。Gregが指摘するように、「GitHub Copilotは基本的にもう一人のレビュアーとして機能し、変更を分析してコメントを提供します。それでも、人間の監視の代わりにはなりません。コードに複数の視点を持つことは非常に重要で、異なるレビュアーは他のレビュアーが見逃してしまうような問題を発見してくれるからです」。
GitHub Copilotの提案と人間の専門知識、厳密なテストを組み合わせることで、高品質で信頼性の高いコードを維持しながら、より効率的にデバッグを行うことができます。
以下のリソースで学習を続けることができます:
*Visual StudioでGitHub Copilotを使ってアプリをデバッグする
*GitHub Copilotチャットのプロンプト例
*GitHub CopilotとVS Codeのチュートリアル
The post How to debug code with GitHub Copilot appeared first on The GitHub Blog.