Github Copilot の機能の代表として、ソースコードの補完機能があるかと思いますが、もう一つ重要な機能として、Github Copilot Chat という「チャット」機能があります。
ChatGPT などを利用して、プログラミングをしたことがある方なら、ご存知かと思いますが、Copilot にプログラミングに関する質問をチャット形式で行い、回答を得るというものです。
これにより、プログラマーはもちろんですが、プログラマー初心者及びプログラマーでない人でもシステム開発に関われるのではと、筆者は期待しておりました。
本稿では、では実際にどこまで Github Copilot Chat が有効であるかと検証しました。
前提条件
・Visual Studio Code を使用
・IDE に Github Copilot を導入済
・IDE のプロジェクトに弊社のシステムリソースを展開済
・利用者をプログラマー初心者及びプログラマーでない人を想定
質問①
<プロジェクト名>の構造を教えて下さい
回答①
申し訳ありませんが、"<プロジェクト名>"というプロジェクトの具体的な構造については、私の知識では提供できません。私の能力は一般的なプログラミングとソフトウェア開発の質問に対する回答、または特定のコードスニペットの解析に限定されています。"<プロジェクト名>"の具体的な構造については、プロジェクトのドキュメンテーション、ソースコード、またはプロジェクトのメンテナに問い合わせることをお勧めします。
上記のように展開したプロジェクトの構造を尋ねましたが、端的に「できない」と回答が返ってきました。
質問②
xxx.yyy.<Class> の削除を検討しています。影響範囲を教えて下さい
回答②
xxx.yyy.<Class> の削除を検討しているとのことですが、その影響範囲を正確に把握するためには、プロジェクト全体のコードを調査する必要があります。
VS Codeの検索機能を使用して、<Class>クラスがどこで参照されているかを調べることができます。
以下の手順で検索を行ってみてください:
VS Codeの左側のサイドバーにある検索アイコンをクリックします。
検索バーにxxx.yyy.<Class>と入力します。
Enterキーを押して検索を開始します。
この検索により、<Class>クラスが参照されているすべての場所が表示されます。これらの場所は、<Class>クラスの削除によって影響を受ける可能性があります。
こちらとしては、Github Copilot が自動で Grep 検索を行い、影響範囲を判断し、修正すべき箇所及び内容を示してくれることを期待してましたが、「自分でやって下さい」という回答が得られました(;^_^
質問③A
ログイン画面の改修を検討しています。ログイン画面はどこのソースコードを見れば良いですか?
回答③A
ログイン画面のソースコードの位置は、使用しているフレームワークやアーキテクチャによります。以下に一般的な場所を示しますが、プロジェクトの構造により異なる場合があります。
1. フロントエンドフレームワーク(React、Angular、Vue.jsなど)を使用している場合:ログイン画面のコードは通常、特定のコンポーネントまたはページの中にあります。例えば、src/components/Login.vueやsrc/pages/Login.jsなど。
2. バックエンドフレームワーク(Express.js、Django、Flaskなど)を使用している場合:ログインルートを処理するコントローラーまたはビューを探す必要があります。これは通常、routes、controllers、またはviewsディレクトリにあります。
3. MVC(Model-View-Controller)アーキテクチャを使用している場合:ログイン画面のコードは通常、viewsディレクトリにあります。
4. SPA(Single Page Application)を使用している場合:ログイン画面のコードは通常、特定のコンポーネントまたはモジュールの中にあります。
これらは一般的なガイドラインであり、特定のプロジェクトでは異なる場所にログイン画面のコードが存在する可能性があります。プロジェクトのドキュメンテーションを確認するか、プロジェクトの構造に詳しい人に尋ねることをお勧めします。
ログイン画面は例えば「Login.vue」等、わかりやすいファイル名にしており
その状態であれば、回答してくれる事を期待しておりましたが、一般的な回答が得られました。諦めずに次の質問をしてみました。
質問③B
ログイン画面はVuejsで実装しています。以下のディレクトリ内にあるはずです。
C:\xxx\yyy\<project>
回答③B
Vue.jsで実装されたプロジェクトでは、ログイン画面は通常、特定のVueコンポーネントとして実装されます。このコンポーネントは、通常、src/componentsまたはsrc/viewsディレクトリ内にあります。
以下のパスでログイン関連のVueコンポーネントを探してみてください:
C:\xxx\yyy\<project>\src\components\Login.vue
C:\xxx\yyy\<project>\src\views\Login.vue
ただし、プロジェクトの構造によっては、異なるディレクトリに存在するかもしれません。その場合は、プロジェクトのディレクトリを検索して、Login.vueまたはログイン機能に関連する可能性のある他の.vueファイルを探してみてください。
やはり一般的には回答が返ってきました。。。
もちろん、回答にある2つのパスには配置されていませんので間違いです。
以上より、プログラマー初心者程度の人がプロジェクトに参画した事を想定した質問をしてみましたが、どの質問も満足のいく回答が得られませんでした。「平均値を求める」や「電話番号の正規表現」など、一般的な処理に関する質問であれば、ChatGPT と同様にソースコードを回答してくれますが、システムの仕様に関する質問はまだまだ対応できないようです。
もしかしたら、knowlege を与える(そもそもできるかどうかわかりません)など、何かしらの対応を行えば精度を向上させる事ができるかもしれませんが、そちらに関しては引き続き調査をしていきたいと思います。