2024/11/13~11/19の作業メモ
ChatGPTで簡単なクイズアプリに機能追加してみた。
動作イメージ
目的
- 自習用のクイズアプリに機能追加したい。
- 無料でChatGPTの4o使えるということで、活用して何か動くものを作りたい。
状況
- 前回アプリを一つ作ってもらって以来メンテしてなかったので色々忘れてる。
制約
- コードは自分では書かない。提案されたものでDB含めて構築していく。
- 仕様は会話ログ参照。今回の対応はざっくりと三点。
- 択複機能追加
- クイズテーマ機能追加
- 認証機能追加
1週間での状況
- 会話ログ
↓
- ソース
- デモ
これまでのまとめ
- 1年ぶりくらいの会話でも直ぐに対応してくれてありがたい。自分は全く何のことだかどの端末のどこのワークスペースだかも、renderやsupabaseの設定も頭から消えてました。
- 拡張性考えてなかったアプリを良い感じに実用的な改修提案してくれた。
- 会話が長くなったら新しいチャットにしてねとアドバイスくれたので、適当に会話を分けた。
- 4oと3.5の切り替わるタイミングで英語応答になった気がする。
- 多分4oの方がスマートに提案してくれている気がする。なるべく3.5では作業進めないようにした。
- 自分がある程度理解できて整理して会話したという点もあって、前回よりはスマートだったと思う。
- 相変わらず、エラーメッセージを連携した場合の解説は迅速で助かった。
- spring securityをさらっと導入してくれた。正しいかは要検証だが、取り敢えずは動いてる。
- 相変わらずwinmergeで提案してもらったコードと現状を比較して自分も理解して進めた。
ノーコードか?
相変わらず、ノーコードではないと思う。
それでも、一人でこの短期間で3つも機能追加できなかっただろうし、
エラー対処やcssの細かな修正など、
確実に生産性は上がっている。
自分ひとりじゃできないことを可能にしてくれている。
ローコードではあると思う。
今回の時間かかった点
- 択複機能追加では、チェックボックスの維持実現に時間がかかった。redirectAttributes.addFlashAttributeの利用に至るまでが長かった。結局自分でggってリダイレクトが原因じゃね?って指摘した。
- クイズテーマ機能追加では、テーマ単位での出題にならずに右往左往した。あと、作成してもらったクイズ内容の登録SQLがたまに正解整合性取れてなくてソースの問題かマスタレコードの問題か右往左往した。既存のテーブル設計が、「正解」を2カ所に保存してしまっているのが諸悪の根源だと思う。あとは命名規約とか事前の整理がないから場所によって変数名が被ったりずれたりで誤解が生じて時間がかかった。
- 認証機能追加では、簡単な認証で良いと思っていたが、結局結構手が入ったし、さっき提案してくれたソースと矛盾する提案をくれたりで時間がかかった。特定のクイズテーマだけ認証をかけたい、とずっと書いていても、全テーマ一律の制御しか提案されない点に時間がかかった。
今回のスムーズで感動した点
- 最後に、次回追加したい機能くらいのノリで相談した採点結果画面の結果一覧について、ほぼ提案とおりでスムーズに実装できた。
- クイズテーマの選択画面について、ただの一覧表をイメージしてたけど、カード形式を提案してくれて何か良い感じで凄いなと思った。
- ボタン配置、ヘッダ配置などはさっと意図を汲み取って提案してくれた。
- springsecurityのバージョンによって利用できる機能、できない機能、代替案など、さっと提案してくれる点はやはり、不慣れな言語やFWでの対応でありがたいと思った。
今回の見送った点
- スマホでの見栄え、操作性。
- 時間計測機能。
- 一つのテーマの中で、サブテーマの導入。
等々
\(^o^)/ちょっと疲れた
この後は資格対策とかのクイズ内容をSQLにしてもらって、当初の目的である自習に進めるはず。
以上