はじめに
筆者の紹介
初学者といってもどのくらいのレベルなのかを書いておきます。
・情報系の学部4年生
・簡単なToDoアプリ(React,Vueなし)はつくったことがある
きっかけ
プログラミング言語やフレームワークの知識がほぼなくてもCursor使えばアプリ開発できるんじゃね?と思ったから
結論
それっぽいものはできたけど全然ダメでした。
つくりたいもの
学内のサイトからGoogle拡張機能を使って学校の課題のデータを取得して、ウェブアプリで管理するシステムを作成しようとしました。
技術スタックもAIに考えてもらいました。
フロントエンド: React + TypeScript
バックエンド: Node.js + Express
データベース: SQLite(ローカル開発用)
通知: Electron(デスクトップ通知用)
方針
AgentモードでAIが生成したコードをすべてAcceptしました。
使うAIはautoで選択してもらう。
基本AI任せ
結果
一日触ってみただけですが、拡張機能とアプリが通信できない、拡張機能にすべての機能が集約される、それっぽいものができて以降は改悪されていく、といった大失敗でした。
考察
考えうる失敗した原因を列挙します。
1.ある程度言語やフレームワークに対する知識がないと効率的な開発を行えない。
→AIは一発で正解の機能をつくってはくれないのでバグ修正をしなければならないが、ある程度コードを読む、もしくは出力をみて何が原因かがわからなければ難しい。今回は拡張機能のことを全く知らないのでなぜ通信ができてないのかがすぐにはわからなかったし、AIには修正してもらえなかった。
2.claude-3.7-sonnetの無料版を使い切ってしまい、コードの品質が途中から悪くなった。
→最初はかなりうまくいっていたのに途中から全く進まなくなったのでChatGPTが原因の可能性はある。
3.プロンプト(AIへの指示)が適切でなかった。
→拡張機能にデータ、アプリ側でデータの管理や表示といった機能の分け方をしたかったのだが、途中から拡張機能に機能が集約されて行ってしまった。適切なプロンプトと適切なコードの選択をする必要を感じた。
Cursorが便利だなと感じたこと
コマンドを実行してくれる
設定次第ですが、提案してくれたコマンドを実行してくれます。このおかげで、React等の開発環境の構築がスムーズでした。触れたことがない技術であってもスムーズにセットアップできます。
ディレクトリ構成を把握してくれる
初学者にとってどのファイルをどこに置くのか、どうやってパスを通すのかといったことは少しハードルだと思います。今回の開発とは関係ないですが、静的ファイルの配信をするのに数時間詰まったりしました。Cursorを使うと、どのファイルがどこにあるのか把握してくれるので、適切なファイルの場所であったり、適切なパスのコードを生成してくれていました。
エディタ内でAIを使える
生成AIを開いたブラウザとエディタの行き来は面倒くさいものです。Cursorであればエディタ単体で作業できるので、よく生成AIとVScodeを使う方であればむしろCursorのほうがいいかもしれません。
まとめ
何も知らない人が全部AI任せで必ずうまくいくとは限らないように感じました。ですが、個人開発であればいつでもAIに聞けて開発できるのはすごく便利だと感じます。今後は基本、自力で開発しつつ、詰まったときは気軽にAskモードでデバッグしてもらうツールとして活用いていこうかなと考えています。