前置き
最近AIに2万円/月の課金をしているやまぐろです。
主に個人開発用にAIを使っており、特にClaude(Claude Code)についてはここ一ヶ月で100hくらいは使い倒しています。たぶん。
実はAIを使った開発でWEBサービスをリリースしたりもしていますが、この話はおいおい。
で、ちょっと触ってみたという人は多くても、自分くらいガッツリAIでシステム開発しリリースまで漕ぎつけた人はそんなにたくさんはいないはず。。
そんな自負もありつつ、今回は「AIで開発してみたいけど、どうすれば効率的に使いこなせるの?」という方に向けて、AIを駆使した開発のコツをまとめました。
ではさっそく!
開発前に準備すること
まずは、AIを利用して開発する際に準備しておいたほうがよいことを紹介します!
バージョン管理の導入
バージョン管理システムは、ソースコードや設定ファイルなどの変更履歴を管理するためのシステムのことです。複数人開発や長期運用において、変更の追跡・統合・復元が容易になります。
開発者の中には、プライベートで個人開発する分には必要ないのでは?と思う方もいると思います。個人開発においては自分自身がコーディングをして動作確認をするのが一般的ですし、修正内容や動かなくなったポイントとかも把握できますしね。
しかし、AIを利用した開発の場合、コーディングをするのは自身ではなくAIです。要は複数人で開発するのと同じような状態になる訳ですね。この場合、書いたコードの構成が頭に入りづらい状態となるため、記憶からの復元が難しくなります。また、AIはまだまだ完璧でなく、修正によってはプログラムが全然動かなくなってしまうこともあります。
こうなった時、バージョン管理システムを導入していれば、修正前の動いているバージョンに戻せるわけですね。開発が途中で頓挫しないようにするためにも、必ずバージョン管理を導入しましょう。
IDEやエディタの導入
プログラムを読み書きする時に利用するツールです。AIが大部分をやってくれるにしても、細かい調整は人の手でやったほうが早かったりする部分があるため、バージョン管理と同様に、必ず準備しておいたほうが良いです。
また、自分で書かないにしても、この手のツールがあった方が間違いなくコードが読みやすくなります。言語によって「これがおすすめ」みたいなものが必ず存在するので、ぜひ調べてみてください。
作りたいもののイメージ
そんなに細かく決める必要はないですが、「こんなものが作りたい」が頭にある方がシステムを形にしやすいです。
できればAIに依頼する前に、要件や仕様をテキストファイル(マークダウン形式がおすすめ!)などにまとめておくようにしましょう。あらかじめ準備しておくことで、スムーズに開発を進めることができます。
なお、これを作っておくと、AIへの一番最初のプロンプトとしても有効です。
開発フェーズ
ここからは、実際にAIを使って開発を進めていくフェーズについて解説します。ポイントは、AIを“使いこなす”ための人間側の設計力や調整力です。
AIと人間の役割分担
まずは、AIと人間がそれぞれやるべきことを分担しましょう。
人間の役割は
- 要件定義
- 仕様決定
- 指示だし
- 試験
となります。
そして、AIの役割は
- コーディング
- デバッグ
- 仕様提案
です。基本的にはSEとプログラマーの関係に近いと思いましょう。ちなみに、AIの役割にデバッグと書いてますが、AIが能動的にデバッグをすることは基本的にはありません。必ず人間が試験して、その結果をAIに伝える必要があります。
プロンプト設計は超重要
AIとのやりとりの質=出てくるコードの質です。
思った通りのコードを書いてもらうには、以下の点を意識しましょう。
- 目的を明確に伝える(例:ログイン画面を作りたい、APIを実装したいなど)
- 仕様は具体的に(「Node.jsで書いて」「Expressを使って」「JWTで認証」など)
- ファイル構成を指示(index.jsだけ? ルーティング分けたい?)
例:
Node.jsとExpressを使って、/loginと/signupの2つのエンドポイントを持つAPIを作ってください。
JWTを使って認証処理を行います。ユーザー情報は仮データでOKです。これくらい具体的に書くと、かなりいい感じの出力が得られます。
実際の開発現場でも、設計者がいかに分かりやすくプログラマーに指示を伝えることができるか?が重要になってきますよね。AIを使った開発でもやることは同じです!
また、前述のとおりテキストファイルを渡してあげるのも効果的です。
なお、開発現場でよく見るExcel形式の設計書は非推奨です。AIはExcelを読み取りるのが苦手なため、Markdownなどテキスト形式がよいです。筆者も一度Excelで作った設計書を投げてみたのですが、うまく指示が伝わらず断念しました。あれは人間用ですね。いや、そもそもExcelを使うのがおかしいのかな。。
出力されたコードの確認・実行
AIが出してきたコードをそのままコピペして終わり!にはなりません。
以下を必ず行いましょう。
- ローカルで実行してみる → 想定通り動くか?エラーは出てないか?
- コード全体に目を通す → セキュリティ的にヤバくない?無駄な処理ない?
- AIに質問して補完させる → 「このコード、何やってる?」と聞いてみる
Aは膨大なデータから情報を引っ張っってきてコーディングをするので、ライブラリの使い方を間違えてたり、古いライブラリのコードを出してくることもあります。
AIの出力を盲信しない!を心がけましょう。
リファクタリングは自分でやる or 頼む
AIはそれなりに良いコードを書いてくれますが、「読みやすい」「拡張しやすい」コードにはあと一歩足りないことが多いです。
例を挙げると、
- 処理が共通化されていない
- ネーミングがバラバラ
- 不要な処理が残っている
- バリデーションが雑
などです。
このあたりは、AIに「このコードをリファクタリングして」と頼むのもアリですが、自分でやることでコードの理解も深まるので、まずは生成されたコードを読んでみることをおすすめします。
リファクタリングをAIにお願いする場合は、完全に同じ処理をしているロジックが存在するケース、同じスタイルを指定しているCSSクラスが複数存在するケースなど、範囲を限定して頼むのが安全です。依頼の範囲を広げすぎると、デグレードなどのリスクが高まります。
「フロントのバリデーションと同様のチェックを、バックエンド側でもチェックするようにして!」みたいな依頼であれば、指示通りに動いてくれるでしょう。
仕様変更にもAIを活用
開発を進めていく中で、必ず仕様の変更や追加が出てきます。
そのたびにゼロから考えるのではなく、
- 「このコードに〇〇の機能を追加して」
- 「ログイン後にプロフィールページに遷移するようにして」
- 「画面Aのレイアウトと画面Bのレイアウトを揃えて」
など、既存コードをベースに追加・修正の指示を出すことで、無駄な時間を減らせます。
現行仕様が分からない場合は、「登録APIって、テーブル操作前に登録値のバリデーション入ってたっけ?」のように聞いてみましょう。
まとめ:AIと一緒に開発するということ
AIはとても優秀なプログラマーです。信じられないくらい色々知ってるし、作業スピードも異次元です。ただし、その使い方にはコツと設計力が求められます。
- まずは環境を整える
- 明確な目的と仕様でAIに指示を出す
- 出力コードは必ず確認・修正
- 仕様変更や保守にもAIを活用
これを意識するだけで、AI開発の生産性は格段に上がります。また、AIには少なからずクセみたいなものが存在します。この辺りは一緒にコーディングをしながら掴んでいくのがいいでしょう。
AIを正しく“育てる”意識を持つことで、開発の相棒としての信頼関係が生まれます。人間と同じように優しく接しましょう。まだ生まれたばっかではあるので、世代的には褒めたら伸びるはずです。知らんけど。
おまけ:筆者のコーディング環境
最近はほぼこの環境でコーディングを行っています!Claude Codeはマジで世界が変わりました。とてもすごいやつ。
- エディタ:Visual Studio Code
- バージョン管理:GitLab
- CI/CD:GitLab
- AI開発ツール:Claude Code
ローカルで動くものを作るだけなら、これでいけるはずです!
※実際に本番環境で動く状態にするには、コーディング以外にも様々な知識と作業が必要となります。システム開発って面倒だね!
コメント