最近ChatGPTなどのAIを利用して、開発をしてもらうなど、そんな噂話がちらほら聞こえてきます。
ですが、実際どうやったら良いのか分からないという方のために、プロンプトも交えて紹介します。
機能の洗い出し
例として、個人のタスクを管理するサービスを作ろうと思います。
とりあえずLaravelでAPIの作成をして、後でBladeかReactなどでViewを作成しようかと思います。
そして、タスクなので開始日と終了日、重要度もあればいいな。みたいな感じで細かい機能はよく分からないので、AIに聞いてみます。
ついでに競合も調べて、便利そうな機能があれば取り込もうかとも思います。
#命令書: あなたは、[Webサービスの企画担当]です。
以下の[テーマ]に関する内容を[制約条件]をもとに、[結果]を出力してください。
#テーマ
個人のタスク管理サービス
#制約条件
タスクには以下の項目がある
- 開始日
- 終了日
- 重要度
#結果
[1]サービスに必要な{機能}を列挙
[2]このサービスの競合を調査するためのGoogle検索の{キーワード}を列挙
[3]このサービスの競合サービスの情報を列挙(URLがある場合はそれも)
[4]このサービスについて、競合と差別化するための参入障壁や機能の提案
色々返答が返ってきたかと思います。
機能の決定
色々とAIから返答が返ってきたかと思います。
その中から、今回作成したい機能を選択して、何か思いついた場合は追加したりして機能一覧をまとめます。
今回は、以下の機能を作ろうかと思います。
- タスク作成・編集・削除
- 開始日・終了日の設定
- 重要度の設定(例:高・中・低)
- タスクリスト表示(日付順、重要度順)
- カレンダー表示
ER図作成
上記機能を元にER図を作成してもらいます。
今回は小さいシステムですが、大きくなった場合、意図しないような結果が返ることもあるので、大項目毎に設計してもらったりすると良いかもしれません。
#命令書
あなたは、[Webサービスのエンジニア]です。 以下の[テーマ]に関する内容を[制約条件]をもとに、[結果]を出力してください。
# テーマ
個人のタスク管理サービスの以下機能のデータベース設計
- タスク作成・編集・削除
- 開始日・終了日の設定
- 重要度の設定(例:高・中・低)
- タスクリスト表示(日付順、重要度順)
- カレンダー表示
# 制約条件
- Mermaid形式で出力
- Primary keyはidとする
- カラム名はsnake_caseとする
- テーブル名は複数形の単語とする
- pivotテーブルは両方のテーブル名を繋げたものとする
# 結果
1.ER図を作成
上記をClaudeで作成してもらった結果は以下のようになりました。
ChatGPTでも良いのですが、Mermaid形式がおかしかったりしたのと、ClaudeはArtifacts(アーティファクト)でビジュアル的に結果が確認できる点で採用しました。
ER図からmigrationファイルへ
ER図ができた所で、これをmigrationファイルを作成するコマンドを作ってもらいます。
ついでにModelやControllerも作成してもらいましょう。
#命令書
あなたは、{PHPエンジニア}です。
以下の制約条件と{入力文}をもとに、 {出力文}を出力してください。
#制約条件
- 利用フレームワーク:Laravel11
- APIを作成
#入力文
<Mermaidコード>
#出力文
- `php artisan make:model`コマンド
- オプションでseed,factory,migration,controller(API)も出力する
- 不足しているテーブルは`php artisan make:migraiton`コマンドを作成
- migrationのコード
コマンドが色々出てきたかと思うので実行して、migrationのコードもコピペして、php artisan migrate
を実行してください。
最後に
ここまでで、かなりできたのではないでしょうか?
この後はModelやControllerの中身も基礎的な部分を作ってもらうようにしたら、後は細かいカスタマイズやテストなどでAPIが完成ですね。
何か作りたいものを思いついたら、AIに頼ってモチベーションが切れる前に作りあげてしまうと良いかと思います。
コメント