はじめに
前回の記事では、Claudeと対話しながら要件定義を行い、CLAUDE.mdファイルを作成するところまで紹介しました。
今回は、いよいよ実際の開発に入ります。
要件定義で整理した内容をもとに、Claude Codeにコードを書いてもらう手順を紹介します。
「要件定義はできたけど、ここからどう進めればいいの?」という方に向けた記事です。
開発の全体像
まず、これからの流れを確認しましょう。
要件定義(前回)
↓
① MVP機能の開発
↓
② 動作確認・修正
↓
③ 追加機能の実装
↓
④ 完成
ポイントは、一度にすべてを作ろうとしないことです。
前回の記事で整理した「最初に必要な機能(MVP)」から作り始めて、動くものを完成させてから、「後で追加したい機能」を1つずつ足していきます。
Claude Codeで開発する際の注意点
実際にClaude Codeに開発を依頼する前に、知っておくべき注意点を3つ紹介します。
注意点1:MVP機能から作り始める
前回の要件定義で、機能を「MVP機能」と「将来追加する機能」に分けました。
先ほども記載しましたが、MVP機能から作成することがおすすめです。
よくある失敗
最初から全ての機能を依頼してしまうケースです。
一度に多くの機能を依頼すると、以下のような問題が起きやすくなります。
- エラーが大量に発生して、どこが原因か分からなくなる
- 機能同士が干渉して、片方を直すともう片方が壊れる
- コード全体が複雑になり、後から修正しにくくなる
僕も、初めて生成AIで開発を行ったときに、一度にすべての機能を依頼してしまい開発が全然進みませんでした。まずは、MVP機能から作成することがおすすめです。
注意点2:機能追加は1つずつ依頼する
MVP機能が完成したら、追加機能の実装に進みます。
このときは、一つずつ機能を追加することがおすすめです。
❌ 悪い例:「感想メモと5段階評価とカテゴリ分類を追加してください」
⭕ 良い例:「感想メモ機能を追加してください」
1つの機能を追加して、動作確認して、問題なければ次の機能へ。
この繰り返しで進めていきます。
1つずつ進めることで、もしエラーが出ても原因が特定しやすく、修正も簡単です。
そのため、一つずつ機能を追加することがおすすめです。
注意点3:データベースのアクセス制限は最初から考えておく
少し技術的な話になりますが、将来アプリを公開(デプロイ)するときに困らないために知っておいてほしいことです。
アプリでデータを保存する場合、データベース(DB)という仕組みを使います。このデータベースをクラウドサービス(Supabase、Firebase、AWSなど)に置く場合、誰がデータベースにアクセスできるかを制限する設定が必要になります。
この制限の仕組みの1つが「ホワイトリスト」です。
ホワイトリストとは?
ホワイトリストとは、「許可されたものだけを通す」という考え方です。
データベースの場合、許可されたIPアドレスやユーザーだけがアクセスできるように制限します。
例えるなら、マンションのオートロックのようなものです。鍵を持っている住人だけが入れて、それ以外の人は入れません。
なぜ最初から考えておくのか?
開発の段階ではつい「まず動けばいい」と思ってセキュリティを後回しにしがちです。しかし、後からアクセス制限を追加しようとすると、以下のような問題が起きることがあります。
- アプリ側の接続設定を大幅に修正する必要が出てくる
- 設定漏れが発生して、セキュリティホールになる
なので、ホワイトリストでセキュリティ設定を行うときは、最初から考慮して進めていくことがおすすめです。
実際の開発プロンプト
実際にClaude Codeに開発を依頼するときは、開発の言語を決めて以下のようなプロンプトを入力すれば、開発を行ってくれます。
MVP開発の依頼プロンプト
## 依頼内容
CLAUDE.mdの要件定義に基づいて、MVP機能の開発をNext.jsで行ってください。
## データベースについて
データベースを使用する場合は、将来のデプロイを見据えて、
アクセス制限(ホワイトリスト)を考慮した設計にしてください。
ユーザー権限の分離など、セキュリティを意識した構成をお願いします。
プロンプトのポイント解説
ポイント1:CLAUDE.mdを参照させる
CLAUDE.mdの要件定義に基づいて
この一文を入れることで、Claude Codeは先ほど作成したCLAUDE.mdファイルを読み込み、プロジェクトの全体像を理解した上で開発を進めてくれます。
CLAUDE.mdに開発ルール(確認なしにファイルを変更しない等)を書いておけば、そのルールも守ってくれます。
ポイント2:作る機能を指定する
「MVP機能を作ってください」を入れることが大切です。
MVP機能を具体的に挙げてもよいですが、挙げなくてもうまくいくことが多いです。
ポイント3:データベースのセキュリティを指示する
データベースを使用する場合は、将来のデプロイを見据えて、
アクセス制限(ホワイトリスト)を考慮した設計にしてください。
注意点3で説明した、アクセス制限を最初から考慮しておくための指示です。
この一文を入れておくだけで、Claude Codeがセキュリティを意識した構成で開発を進めてくれます。
機能追加のプロンプト
MVP機能が完成し、正常に動作することを確認したら、次の機能を追加していきます。
複数の機能を同時に依頼すると、エラーの原因が特定しにくくなるため、
一度に1つの機能だけを依頼することがおすすめです。
機能追加の依頼プロンプト例
## 依頼内容
以下の機能を追加してください。
## 追加する機能
メモ機能
- 登録した本に対して、感想やメモを追加・編集できるようにする
- 一覧画面でメモの有無が分かるようにする
うまくいかないときの対処法
開発を進めていると、エラーが出たり、意図と違うものが出来上がったりすることがあります。
そんなときの対処法を紹介します。
エラーが出た場合
エラーが出た場合は、以下のようなプロンプトを入力するとエラーの修正を生成AIが行ってくれます。
エラーメッセージは省略せず、そのまま全文を貼り付けてください。
以下のエラーが出ています。原因を調べて修正方法を提示してください。
エラー内容:
(エラーメッセージを貼り付ける)
意図と違うものができた場合
「こうじゃないんだけど...」と思ったときは、何が違うのかを具体的に伝えてください。
❌ 悪い例:「違います。やり直してください」
⭕ 良い例:「一覧画面の表示が想定と違います。タイトルと著者名が横並びではなく、
タイトルが上、著者名がその下に来るようにしてほしいです」
具体的に伝えることで、Claude Codeが正確に修正できます。
CLAUDE.mdの更新を忘れずに!
機能を追加したり、仕様を変更したりしたら、CLAUDE.mdも一緒に更新しましょう。
## 依頼内容
今回追加した感想メモ機能について、CLAUDE.mdを更新してください。
CLAUDE.mdを常に最新の状態に保つことで、次の機能追加や修正の際にClaude Codeが正確にプロジェクトの状態を把握できます。
まとめ
今回紹介した開発の進め方をまとめると、以下のようになります。
- MVP機能から作り始める
- 機能追加は1つずつ
- CLAUDE.mdを常に更新する
生成AIを使った開発は、「段階的に進める」ことがうまくいくコツです。
関連記事