🌟

AIコーディングで失敗しまくった私が学んだ、効率的にAIを使うための6つのポイント

に公開

AIで高度なコードが生成できるようになり、日々その進化を感じています。しかし、まだまだ効率化できていないと最近痛感しています。
この記事では、私が実際に経験した失敗例を共有し、同じような失敗を避けるためのポイントをお伝えします。

失敗例1:動かないから最初からやり直した

機能追加や機能修正をするときに、自分が理解していなかったコードに対して「これぐらいなら簡単にできるでしょう」と軽い気持ちで「このフォームに数字しか入力できないようにバリデーション追加して」と指示しました。

すると、何も入力できなくなってしまい、エラーも発生。「エラーを修正して」と指示しても一向に解決しません。
指示を出しているつもりなのに、なぜかうまくいかない。指示が悪かったのかと思い、さらに詳しく指示を出しても、やっぱり動作しないまま。
結局、コードの変更行数は増えているのに動かない状態になってしまい、「とりあえず動く状態から最初からやり直そう」となってしまいました。
最初からやり直しても、また同じような指示を出すため、当然うまく行きません。

💡学んだこと:
いきなり修正の指示を出す前に「原因の分析」「修正方針の決定」が必要だと強く感じました。コードの理解が難しいジュニアエンジニアは、AIに修正指示を出す前に、まずは一緒にコードを理解することが重要です。

改めてClaude4の公式ドキュメントを確認すると、プロンプトエンジニアリングの大事なことが多く書かれているのでおすすめです。

失敗例2:後からメンテナンスできない

コードを完璧に理解できていなくても、AIの力でたまたまうまくできることも当然あります。その時は問題にならなくても、3ヶ月後に機能追加や修正が必要になったときが大変でした。
「3ヶ月前に確かに私が生成したコードなんだけど、なんでこうなってるんだっけ?」
後からメンテナンスするのに多大なコストがかかってしまいました。

💡学んだこと:
コードを理解する大切さ、そして何をしているかが伝わりやすいコードにすることの重要性を痛感しました。

失敗例3:完成図を描かずにちょっとずつ足していって失敗

現状のコードを把握していて、やりたいことがわかっていても、完成図を描いていないと失敗することがあります。
一気に多くの範囲を任せるのは避け、指示する範囲を分割して依頼していましたが、計画が不十分で以下のような問題が発生しました

  • 重複するようなコードになってしまった
  • 汎用性が全くないコードになってしまった

似たような処理が他でもあるのに、「これだとこの場合しか使えない」そんなコードになってしまい、似たようなコードが乱立して改修コストが跳ね上がってしまいました。

失敗を回避する実用的プロンプト

上記の失敗を踏まえて、私が実際にClaude Code で使っている効果的なプロンプトをご紹介します。

設計・計画段階のプロンプト

🎯 要件整理・設計方針決定プロンプト

以下の機能要件に対して、このプロジェクトに適した実装方針を検討してください:

【やりたいこと】
[具体的な機能要件]

【検討してほしい項目】
1. 既存コードとの整合性を考慮した設計方針
2. 実装に必要なライブラリや手法(既存の依存関係も考慮)
3. 段階的な実装手順
4. 想定されるリスクと対策
5. テスト方針
6. 保守性・拡張性の考慮点

プロジェクトの構造とコーディングスタイルに合わせて提案してください。

使用効果:
既存プロジェクトの構造を把握したClaude Codeが、プロジェクトに適した技術選定と実装手順を提案してくれます。

🔍 既存コード分析・影響範囲確認プロンプト

以下の機能を追加したいのですが、既存コードへの影響を分析してください:

【追加したい機能】
[具体的な機能]

【分析してほしい項目】
1. 修正が必要なファイル・コンポーネントの特定
2. 既存機能への影響とリグレッションリスク
3. 状態管理やデータフローへの影響
4. 副作用が起こりそうな箇所
5. 事前にテストすべき項目
6. リファクタリングが必要な箇所

コードベース全体を考慮して回答してください。

使用効果:
プロジェクト全体を把握しているClaude Codeが、見落としがちな影響範囲まで教えてくれます。

実装段階のプロンプト

💻 段階的実装指示プロンプト

以下の要件を段階的に実装してください:

【実装要件】
[具体的な機能・要件]

【実装方針】
1. 最小限の機能で動作確認可能な状態を作る
2. 段階的に機能を拡張
3. 各段階でテスト・動作確認ができるようにする

【求める出力】
- ステップ1として実装するコード
- 動作確認の方法
- 次ステップの概要

一度に全てを実装せず、確実に動作する最小単位から始めてください。
既存のコーディング規約とスタイルに合わせてください。

使用効果:
プロジェクトのスタイルに合った段階的な実装で、各ステップでの動作確認が可能になります。

AIを効率的に使うためのポイント

これらの失敗を通じて学んだ、AIを効率的に活用するためのポイントをまとめました

💡過去の経験から学んだ教訓

  • 実装する機能を理解する

    • 何を作りたいのか、どんな動作を期待するのかを明確化
    • 要件を曖昧にしたまま作業を開始しない
  • 既存のコードを理解する

    • 修正対象のコードが何をしているのか把握する
    • 不明な部分はAIに「このコードの動作を説明して」と質問する
  • わからないところは調べてから実行する

    • 不明点を放置せず、事前に調査する
    • AIに「〇〇について教えて」と質問してから実装を進める

💡効率的に進めるために意識すべきこと

  • 実装する範囲を明確にする

    • 一度に任せる範囲を絞る
    • 「この画面のこの機能だけ」といった具体的な区切りを設定
  • 計画を立ててから作業を開始する

    • 完成図をイメージし、全体設計を考える
    • 機能同士の関係性や依存関係を整理する
  • 入出力をはっきりと考える

    • 何を入力し、何を出力するのかを明確にする
    • データ形式や型を具体的に指定する

まとめ

AIの力は確実に私たちの開発効率を向上させてくれますが、使い方次第で逆効果になることもあります。
特に初心者の場合、AIに丸投げするのではなく、一緒に学び、理解しながら進めることが重要だと実感しています。

株式会社エスマット

Discussion