GithubCopilotを使って簡易BLOGをRTA的に開発してみる

数年前に管理職となり、本格的なコーディングからは離れた
アラフィフ突入おじさんが
**Github Copilot？なにそれおいしいの？** の状態で
Github Copilotを使って簡易BLOGがどれくらいの時間で作れるか
リアルタイムタイムアタック的なことをやってみました。

※ なにそれおいしいの？はさすがに盛ったけど、Github Copilotを一度も触ってはいません。

# 前提
## 環境てきなもの
- Windows
- WSL2

## このために用意したもの
- VSCode
- DockerDesktop
- Github Copilot(1か月フリートライアル版)
- 重い腰を上げるための気合

## 注意
使いごこちのレポートのつもりなんで、コードには特に触れません。

# プロローグ
## Github Copilot(1か月フリートライアル版)の契約
※ 最近[完全なるフリー版](https://github.blog/jp/2024-12-19-github-copilot-in-vscode-free/)がでたんですが、このQiitaを書こうと思い立って契約したタイミングでは、このフリー版なかったんです。

まずは[こちら](https://github.com/settings/copilot)から「Start free trial」のボタンをクリックして。。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/4668372c-1f9c-e48e-f853-e5742e96af31.png)

ポチポチポチと記述内容に沿ってを契約を進めると、こんな感じで契約完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/a89d6d9e-4429-b954-f62c-f23b64985802.png)

一応ここも時間計ってみましたが、所要時間はだいたい10分で契約完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/cb01be8f-81fc-f645-0e3a-bfd2ceb4cb6e.png)



# 本題
## ブログ作成タイムアタック開始！！

補足：VscodeにはGithub Copilot、Github Copilot Chat 2つのextensionsを入れてます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/0b8cdee8-66af-f68a-cb10-667821e760e3.png)

じゃあ、スタート
![スクリーンショット 2024-12-01 134134.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/b04c7453-a7b9-fd98-c7ef-159ce2bef0c0.png)

まずは「ブログをpythonで作りたい」と打ってみよう。ポチっ
うぉおおおお！！なんかコピペすればいいようなコードとファイル構成が出てきた！！
![スクリーンショット 2024-12-21 093602.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/6a8e0525-3237-6c0c-888b-d1e6cdf54df9.png)

あー。書き出してくれたコードをパラっと見ると、データストアやファイルなど何もデータ保存するつもりないなぁ...記述した内容が保存されないと、さすがにブログじゃないだろう...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/a8d712eb-02b0-daa9-3ff6-01ee4edfbff9.png)

データストアにmysqlを使いたいなぁ...
あ、ローカルPCにmysql入れてないしDockerでcomposeも含めてなんとかしてくれないかなぁ...
「docker composeもつかってmysqlもつかいたい」でポチ
おぉおおお！！mysqlを含めたdocker-compose.ymlとpython自体の実行環境をつくるDockerfileも作ってくれた！すごい！！
![スクリーンショット 2024-12-21 093834.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/0fde1acf-58fe-733a-e18d-03f12bb8dd75.png)


Copilotさんが出してくれたコードを全部コピペして...
はい。 `docker compose up --build`っと
ビルド始まったでー！！ビルド終わったら起動するんだろうなぁ
![スクリーンショット 2024-12-21 094912.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/022661a3-2bc5-9a3b-9d80-0216a054dfff.png)

ビルドおわったかな？
![スクリーンショット 2024-12-21 100123.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/82829a0d-233c-d788-840d-b0a17c50f5e1.png)

ここまで14分程度
はぁー。ブログが14分で作れる時代きたかぁ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/4adc0287-8003-ba0b-1843-9045667752f0.png)


はい。じゃあブラウザで...
!?アクセスできないじゃん？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/9c650fb8-3bd1-e143-f2ff-c763237fffa7.png)


この辺あせってキャプチャを取り忘れたけど
pipのインストールに失敗していて、その旨Copilotさんに聞いたら以下とのこと
Dockefileも提案してくれたので再度ビルド！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/93688a8c-8d72-0a18-033b-28f528d24e1f.png)


そして、再度ビルドも失敗で再提案をうけました。
Copilotさんが作ったDockerfileやで！最初っから考慮してくれないかなぁ...っと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/5d7fe795-1106-abb3-0a91-f7ac4320be0e.png)

そして、ビルドが通り！ついに！！
ブラウザで表示！バン！はっ？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/63969a00-7b2f-ce85-612a-f5fcc3129edb.png)

むしゃくしゃしたんで、エラーログをゴリっと送ってみたところ...

おー！すごい！人間が真剣にエラーログを読まなくてもCopilotさんはしっかりポイント抑えて何が悪いか教えてくれる！
むしろ、MySQLのライブラリ側のエラーログのほうがわるいんじゃないの？もっとわかりやすくだせんじゃないの？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/08b96a30-ab4a-ef81-c1e5-5d4acc3aa83d.png)

いわれたとおりに直してビルド！！
さあ、ブラウザで表示！バン！おー？
しょぼい画面が...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/b42ffa81-e6a9-8ee7-a9f0-5e4c88a8ac98.png)

まあ、いいか...
New Post画面開いて、Title、Contentを入力してSubmit!!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/274beb6a-2a31-74a8-34ea-dbfe32688d83.png)

はい。予想通りの展開です。
もうCopilotさんが新規で作ってくれたコードは信用してませんでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/cbfbea57-fca5-7b75-cb11-56c57809f740.png)

はい！エラーログぼん！！
またもや的確なエラーログの解析。そっちはほんとすごい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/991b9048-65cd-4165-6aff-98cf0f459bf3.png)

再度修正してビルドして...
気を取り直して、ブログの投稿！ポチ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/ed815eb6-13bb-1f7d-845e-698ac518a2de.png)

はい。投降後の画面...
なに？投稿内容なにも出ないんですけど？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/0e626b2b-f219-50fb-1ae0-e0675b925719.png)

なんて聞けばいいんだろう？「投稿した文字が表示されません！！」ポチっ
お！なんか提案された、全部やってみよう...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/467dcf74-7f3b-da97-a008-adce008354ab.png)

ビルドしなおして、ブラウザ開いて投稿！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/9fdffacf-b497-ec63-c9fe-ea10da012bb6.png)

きたーーー！！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/f73076c3-4dd6-c6ca-d87a-511dcefb95a7.png)

ブログ記事のタイトルをポチっとしたら...
内容画面にきたーーーー！！うぉおおおおおおお！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/b771851d-a37e-1389-c6ef-5546d6ed5949.png)

ここまで57分くらいかかりました。
これもすべてCopilotさんが一発で完璧なものを作れないからなんですからね！
まぼろしの14分の記録が見たかった。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153651/092fbbe6-77a9-9f01-dd2d-39465ad53735.png)


# 終わってみての感想
たった１度つかってみただけの評価なんて、ちゃんとした評価じゃないですが
今のところ思ってみたのは、「まるっとアプリを全部作成してくれ」までお願いすると
うっかり漏れちゃう設定とかライブラリとかがあるくらいの性能なのかな？
一方でエラーログの解析能力最高！すごい！
エラーログじゃなくても、問題点を見つけて解決の提案する能力は基本高いかなと思いました。