はじめに
AI駆動開発って実際どんな感じなんだろうと思い、個人で軽く試してみました。
本記事では、その体験を通して感じたことや気づいたことをまとめています。
開発環境
- 使用AI:GitHub Copilot
- 開発言語:TypeScript
- フレームワーク:Next.js 15
やったこと
レシピ管理アプリを作成しました。
これは、AIと壁打ちしている中で出てきたアイデアをもとに取り組んだものです。
今回は以下のようなステップで開発を進めました。
- ドキュメント整理
- 要件定義・データベース設計・技術選定・ディレクトリ構成などのドキュメントを
docs/
配下にまとめて文書化 - 仕様やルールを明文化し、常に参照できるようにしました
- 要件定義・データベース設計・技術選定・ディレクトリ構成などのドキュメントを
- Todoリストの作成
- 実装すべき内容を洗い出してリスト化し、進捗と課題を可視化しました
- ステップごとの実装
- Todoリストに沿って、1つずつ順番にAIと一緒に実装を進めました
- まずはAIにコードを作成してもらい、それに対して想像と違うところやこうしたほうが良いと思った点をフィードバックして、少しずつ修正を重ねていく形で進めました
やってみて分かったこと
一気に作らせないほうがよい
一度に大量のコードを生成させると、エラーを含む可能性が高くなり、エラー発生時の修正も大変になりました。
やはり、小さな単位で生成 → 確認 → 修正を繰り返すのがよいと感じました。
エラー修正を丸投げしないほうがよい
一気に実装を任せたことで、エラーの原因特定が難しくなり、とりあえず丸投げを何度もしてしまいました。
その結果、AIの目的がエラーを消すことになってしまい、仕様書から外れた実装ができあがってしまいました。
特にひどかったのは、フォームの入力がまさかのJSON形式になっていたことです。
仕様書を事前に用意しても守ってくれない
一気に実装させたことや、エラー修正に集中したことも影響していると思いますが、事前に用意した仕様書が守られないケースが多くありました。
たとえば、types
や schemas
フォルダを用意し、ディレクトリ構成をドキュメントとして明示していたにもかかわらず、それらを無視した形でコードが生成されてしまいました。
前述の話ともつながりますが、小さな単位で、まずは types
から作成して確認するといった手順で進めていれば、早めに気づけたのではないかと反省しています。
コメント文を頼むと便利かも
あとで見返したときに理解しやすくなるのはもちろんですが、学習目的でも事前にコメント付きで出力してもらうのが効果的だと感じました。
AIに任せると、自分の技術力が本当に身についているのか不安になることがあるので、コードをしっかり理解し、わからないところを調べて吸収していく、そんなスタンスで取り組むのが楽しく学ぶコツだと思いました。
感想
- 小さく区切って進めることで、エラーが減り、手戻りも少なくなると感じました
- AIはあくまでアシスタントとして活用するのがちょうどよく、丸投げしないことが大切だと思いました
- 効果的に活用するには、利用者側にもある程度の技術力が必要で、適切な指示やコードの理解力が求められると感じました