ChatGPTに指示するだけで本当にアプリが作れるのかやってみた
こんにちは!
テラーノベルでバックエンドの開発をしているisolaです。
今回は皆様ご存知のChatGPTについて記事を書きたいと思います。
色々とすごい噂話は聞きますが、エンジニアとしては「本当にChatGPTにお願いするだけでアプリ開発ができるものなのか?」がかなり気になるところでした。
そこで、実際にChatGPTと会話のみで簡単なアプリを作成してみよう!と思った次第です。
概要
今回はJavaScriptとHTMLで、簡単な英単語アプリを作成してみることにしました。
使用したのはGPT-3.5です。
始める前に思い描いた超ざっくり仕様
- 英単語のテストができるアプリがほしい
- テスト開始時にレベル選択ができるようにしたい
- 後からレベル追加が簡単にできるように、各レベルの単語は外部ファイルで用意したい
- テスト完了時にテスト結果を確認できるようにしたい
開発の条件
- ソースコードは全てChatGPTに書いてもらう。自分では一切コードを書かない(ChatGPTからの修正指示にはしたがって直す)
- ChatGPTから提供された時点でコード上のミスを見つけても、エラー解決も全てChatGPTにお願いする
結論
できました(所要時間1時間半くらい)
ChatGPTとの会話のラリーを繰り返して、動作するソースコードを生成&改良をしてもらいました。
完成系のコードは以下に置いてあります。
所感としては、かなり丁寧にコード生成をしてくれるな、と思いました!
生成したコードの解説も併せてしてくれるので、プログラミングの勉強をしている人にはとても良いのではと思います。コードのコメントもしっかり書いてくれました。
ただ、細かいミスは結構多く、存在しない関数をしれっと使用してきてエラーが出る、みたいなことも何度もありました。
あとこちらが丁寧に返すとChatGPTも気持ちよく返してくれますが、エラーが頻発してこっちが少しいらいらした返しをすると向こうをそっけない返事を返してきたりしました笑
ChatGPTに投げてみた要望
どのような要望をChatGPTに渡してソースコードを生成してもらったかを以下に記載します。
途中段階のソースコードは掲載を省きます(長くなってしまうので)
まず、以下の要望をChatGPTに出しました。
- javaScriptで動作する英単語テストのソースコードを書いてほしい
- 単語テストのwordListを外部ファイルから読み取るようにしたい
- 生成したjavaScriptのコードを利用したHTMLも作成してほしい
- 単語テスト開始時の読み込むwordListの外部ファイルを、JSON形式でレベル別に作成してほしい。
- テスト開始時に、ユーザーが選択したレベルに応じて適切なwordListを読み込むようにしたい
この時点で、コード上の細かいエラーがいくつかあったのでChatGPTにエラーメッセージを渡してコードの修正をしてもらいましたが、軽微な修正のみで、最低限動作するものが出来上がってきました。
もう少し改良を加えたかったので、ChatGPTに重ねてお願いをしてみました。
- 見た目を綺麗に整えたい。いい感じのCSSを組んでほしい
- 5問でテストが自動終了するようにしたい
- 回答ごとに正誤結果を表示してから次の問題にいきたい
- テスト完了時に全ての正誤結果を表示したい。回答が誤っていた場合、自分が入力した誤回答も合わせて表示したい
概ね正常に動作するものが上がってきましたが、微妙にこちらの意図を汲んでもらえず、正誤結果表示等を正しく行うのに何度か会話を重ねる必要がありました。
また、回答が入力式でひらがなを許容できていなかったので、ひらがなでの回答も許容できるよう修正をお願いしましたが、何度伝えてもうまく実装してくれなかったので、ここは回答を選択式にすることにしました。(自分で実装しようかと思いましたw)
さらにさらに改良を加えるため、重ねてお願いしてみました
- テストが終わったら「もう一度テストする」「初めに戻る」のボタンを表示したい
- テストをもう一度始める時に、回答結果の履歴は一旦クリアしたい
- テスト結果を表示する際に、問題文の単語も表示したい
- 回答を選択式にしたい
- 問題数を増やしたい
この段階になると、機能が増えてきたからか要望を出して最初に提供してくるソースコードにバグが存在することが多く、
トライ&エラーでChatGPTに動作しない事象とエラーメッセージを投げ、解決策を提案してもらう、というラリーを繰り返しました。
エラーを潰し切って、完成系のソースコードになったという形です。
結論
ChatGPTとの会話のみでアプリを開発することはできました。
提供されるソースコードが100%正しいということはなく、バグが起きるのは人間が作るのと変わらないなという感じでした。
ただ、こちらから正確に起きている事象とエラーメッセージを提供すれば、解決策も瞬時に示してくれるので、その点はやはり便利でしたね。(解決策を聞くまでもないようなケアレスミスも結構ありましたが…)
今回のように全てをChatGPTに任せて開発をするというのは中々大変ですが、必要に応じてアイディアをもらったりするにはとても良いかなと思いました!
また何か活用できそうなシーンがあれば頼らせてもらおうと思います。
Discussion