PMO室の木村です。
GitHub Copilot Chat
がパブリックベータとして使えるようになっていたので、他の人が実装した社内Webツールのプロジェクトソースを解説してもらいました。
使用したもの
- Visual Studio Code
- GitHub Copilot
- GitHub Copilot Chat
ChatGPTを使ってソースコードの解説を試す事もできますが、ソースコードを開いているVSCode上で使えるので何度もコピペする必要がなく便利です。
目次
VSCodeで開いているプロジェクトルートフォルダの相対パスや絶対パスを提供して尋ねても思った回答は出ませんでした。 質問 SAMPLE_PATH/sample-pj のフォルダの中身を解説してください 回答 申し訳ありませんが、私はあなたが要求したフォルダの中身を見ることはできません。私はあなたのプライバシーを尊重し、あなたのコンピューターにアクセスすることはできません。しかし、もし何か特定のファイルやフォルダについて質問があれば、お答えできるかもしれません。 何度かやってみた中で良さそうだったのが コンソール から 質問 以下のリストはプロジェクトルートでlsを行った結果です。 全てのファイルとフォルダの用途を説明してください。 回答 GitHub Copilot: 以下は、プロジェクトルートで composer.pharを説明してくれず、抜けが出ちゃうのでプロンプトの改善余地がありますが、初めて見た人が何から調べたらいいのやら?とならずに、知らない事や見るポイントを調べるきっかけになりそうです。 参考にしたプロジェクトでは、 質問 composer.json の内容から選択された範囲のライブラリをそれぞれ説明してください。説明に入れて欲しい内容は以下の通りです。出力はmarkdown形式でお願いします。 解答 GitHub Copilot: 以下は、選択された範囲のライブラリの説明です。 マニュアルのURL: https://www.php.net/manual/ 一般的なライブラリの用途: PHP 言語のコアライブラリです。Web アプリケーション、コマンドラインツール、スクリプトなどを開発するために使用されます。 マニュアルのURL: https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/ 一般的なライブラリの用途: PHP でデータベースアクセスを行うためのライブラリで、Doctrine プロジェクトの一部です。DBAL は、様々なデータベースシステムに対して、一貫したインターフェースを提供します。 マニュアルのURL: https://github.com/fideloper/TrustedProxy 一般的なライブラリの用途: Laravel フレームワークのプロキシキャッシュを提供するライブラリです。プロキシキャッシュは、アプリケーションのパフォーマンスを向上させるために使用されます。 一般的なライブラリの用途: MongoDB を使用するための Laravel パッケージです。MongoDB は、ドキュメント指向の NoSQL データベースです。 マニュアルのURL: https://laravel.com/docs/ 一般的なライブラリの用途: Laravel フレームワークのコアパッケージです。Laravel は、PHP の Web アプリケーションフレームワークで、ルーティング、ミドルウェア、コントローラ、ビュー、データベースマイグレーションなどの機能を提供します。 他にも package.json でも同様の出力が出ました。検索や翻訳をして調べることも多いかと思いますが、一般的な利用用途も合わせて出してくれるのが便利です。 ソースコードの解説ではない質問もできます。
lsの結果を使って質問した回答にあった、Laravelに関する質問をした例です。 質問 PHPのLaravelプロジェクトでは、ソースコードや設定ファイルを確認するためにどこを見れば良いですか? 回答 GitHub Copilot: Laravel プロジェクトのソースコードや設定ファイルを確認するには、以下のファイルやディレクトリを確認することが推奨されています。 これらのファイルやディレクトリを確認することで、Laravel アプリケーションのソースコードや設定ファイルを確認することができます。 VSCodeで開いたフォルダでは php を使っていますが、Go言語など利用していない技術についても質問できます。 質問 Go言語 でよく使われるフレームワークをいくつか公式URL、GitHub URLも合わせて教えてください 回答 GitHub Copilot: Go プログラムでよく使われるフレームワークとしては、以下のものがあります。 これらのフレームワークは、Web アプリケーションの開発に必要な機能を提供しています。それぞれのフレームワークには、公式ドキュメントやチュートリアルが用意されているため、詳細な情報を確認することができます。 ソースコードの解説を依頼する際には対象のファイルのパスを教えたり、ソースコードの選択範囲を指示する必要があります。
例えば、VSCode で ソースコードの解説の際に「バグやバグに繋がる懸念があれば指摘してください。」と付け加えて質問することで指摘をもらえます。もちろん、指摘がなければ安全というわけではありませんが参考になります。 このファイルは何の用途にあるのだろう?など先輩には聞きづらい質問や調べにくい疑問をChat形式ですぐ聞けるので簡易な質問はAIに聞くことでチームへの負担も減らせそうです。 使っている最中では回答が途中で止まるなど、分割されずに1回で回答を受け取れました。
また、トークン料ではない月額料金のですので問い合わせ回数や文字数を気にせず利用できます。 完璧なドキュメントとはいかないですが、エンジニア以外の人や自動化などでプロジェクトを理解する為に役立つドキュメントは作成できそうです。 複数のファイルやフォルダの内容を一度にチェックすることはできないため、ファイル数やソース量が大きいものだとGitHubCopilot Chatで解説するには時間がかかり、全てのソースをGitHub Copilot Chat で解説してもらうのはやめました。OpenAI APIを使用してバッチなどで作成する方が速そうです。
しかし、それに手をつけ始めると時間がかかりそうだったので今回はここまで! ChatGPTにソースを貼って回答をもらっても近い回答をもらうことができますので興味がある方はやってみてください。
くれぐれもAIに提供できないソースや情報を使わないようにお気をつけください。 テコテックでは新卒採用、中途採用共に積極的に募集をしています。まずはプロジェクトフォルダの内容を解説してもらおう
ls
コマンドでプロジェクトフォルダの内容をリストしておき、プロンプトにそのままコピペで使用します。
'''
app bootstrap composer.lock config package.json public routes storage webpack.mix.js
artisan composer.json composer.phar database phpunit.xml resources server.php tests yarn.lock
'''ls
コマンドを実行した結果のファイルとフォルダの説明です。
app
: Laravel アプリケーションのコントローラ、モデル、ビュー、ジョブ、イベントなどのコードを含むディレクトリです。artisan
: Laravel アプリケーションのコマンドラインインターフェースです。bootstrap
: Laravel アプリケーションの起動に必要なファイルを含むディレクトリです。composer.json
: Composer パッケージマネージャーの設定ファイルです。composer.lock
: Composer パッケージマネージャーがインストールしたパッケージのバージョン情報を含むファイルです。config
: Laravel アプリケーションの設定ファイルを含むディレクトリです。database
: Laravel アプリケーションのデータベースマイグレーション、シード、ファクトリなどのコードを含むディレクトリです。package.json
: npm パッケージマネージャーの設定ファイルです。phpunit.xml
: PHPUnit テストランナーの設定ファイルです。public
: Laravel アプリケーションの公開ファイルを含むディレクトリです。resources
: Laravel アプリケーションのビュー、JavaScript、CSS、言語ファイルなどのリソースを含むディレクトリです。routes
: Laravel アプリケーションのルーティングファイルを含むディレクトリです。server.php
: Laravel アプリケーションの開発用 Web サーバーです。storage
: Laravel アプリケーションのログ、キャッシュ、セッション、アップロードファイルなどのストレージを含むディレクトリです。tests
: Laravel アプリケーションのテストコードを含むディレクトリです。webpack.mix.js
: Laravel アプリケーションの JavaScript ビルドツールの設定ファイルです。yarn.lock
: Yarn パッケージマネージャーがインストールしたパッケージのバージョン情報を含むファイルです。package.json の一部を説明してもらう
composer.json
を使用していますので、どのようなライブラリが使われているかを説明してもらおうと思います。
composer.json
をVSCodeで開き require
ブロックの一部を選択して指示してます。
'''
・公式URL
・公式GitHub
・マニュアルのURL
・一般的なライブラリの用途
'''
php
doctrine/dbal
fideloper/proxy
jenssegers/mongodb
laravel/framework
Laravelに関する質問
他言語の質問
使ってみて
ちょっと不便なところ
VSCodeで開いているファイルやワークスペースのフォルダを把握していない
user.php
を開いた後に「今開いているソースを解説してください」と指示をしても回答をもらえません。ファイルへのパスを付けて PATH/user.php
を解説してくださいと指示することで回答が出力されました。便利なところ
バグやバグに繋がる懸念の指摘
何の為にあるかわからないファイルを聞く
回答が分割されない
ドキュメントの自動化
おわりに
プロジェクト全体の解説をしてみたい
テコテックの採用活動について
採用サイトにて会社の雰囲気や福利厚生、募集内容をご確認いただけます。
ご興味を持っていただけましたら是非ご覧ください。
tecotec.co.jp