この記事は、よくある「AIへのプロンプトの書き方」のアドバイスではありません。
LLMから得られるコードの品質を本気で向上させる、あまり知られていない習慣についての話です。
コツ1 — 不満があると(すぐに)伝える
生成されたコードが期待と違う場合は、早めにはっきり伝えましょう。
なぜ重要なのか:
- LLMは会話の中で適応します。
- 不満のシグナルを送ると、モデルは次のことを迫られます:
- 前提を見直す
- より厳密な推論を適用する
- 代替アプローチを探る
多くの場合、2回目の試みは1回目よりも考え抜かれたものになります。
コツ2 — 二度聞く(良い結果でも)
解決策が完璧に動いても、これを試してください:
「このコードを改善して」
AIがどれほど頻繁に次のことをしてくれるか、驚くはずです:
- ロジックを簡素化
- 命名を改善
- パフォーマンスを向上
- エッジケースのリスクを低減
AIとの反復的な改善は、オンデマンドのシニアレビュアーがいるようなものです。
コツ3 — 全体像(と実際のコンテキスト)を伝える
AIは、アーキテクチャとコード構造を理解しているとき、劇的に良い結果を出します。
ただこう言うだけでなく:
「Xをするメソッドを書いて」
こう試してください:
「これはサービス層に属します。Controller → Service → Repositoryというレイヤードアーキテクチャに従っています。このロジックはどこに置くべきですか?」
これでAIは次のことができます:
- 責務を正しく配置
- ビジネスロジックが技術層に漏れるのを防止
- 設計に合ったコードを生成
しかし、ここからが本当に強力なところです。
システムを手作業で説明する代わりに、 AIプロンプトビルダー を使えば、コードベースから抽出された実際のプロジェクトコンテキストでリクエストを自動的に強化できます。
例えば、 CppDependのAIプロンプトビルダー は以下を提供できます:
- コンポーネント間の依存関係
- レイヤー違反
- コードメトリクス(複雑度、サイズ、結合度など)
- 型の関係とコールグラフ
このコンテキストをAIプロンプトに注入すれば、モデルは推測するのではなく、システムの構造を理解した上で動きます。
これでAIは単なるコードジェネレーターではなくなります。
それは プロジェクトの実データで動くアーキテクチャを理解したアシスタントことです。
コツ4 — 一度離れて自分でリファクタリングする
AI支援のメソッドをいくつか生成したら、一旦立ち止まりましょう。
AIは局所的に最適化しますが、大局的には最適化しません。あなたが次をする必要があります:
- クラスを再構成
- 重複ロジックを統合
- 共通の抽象化を抽出
- 設計の不整合を整理
AIはコーディングを加速しますが、アーキテクトは依然としてあなたです。
コツ5 — AIに自分のコードを批評させる
これは最も強力で、最も過小評価されているテクニックの1つです。
コードが生成されたら、こう尋ねてみましょう:
- 「このコードの弱点は何ですか?」
- 「本番環境でどこが失敗する可能性がありますか?」
- 「どんなエッジケースが抜けていますか?」
ここでAIは役割を切り替えます: 作成者 → レビュアーへ
これにより、しばしば次のことが明らかになります:
- 隠れたバグ
- パフォーマンスリスク
- 不足しているバリデーション
- 並行性の問題
- セキュリティの隙間
実質的に、無料の設計レビューが手に入るのです。
最後に
AIはエンジニアリングの判断を置き換えるものではなく、増幅するものです。
最高の結果は、AIを次のように使ったときに得られます:
ジェネレーター → 改善者 → 批評家 → アシスタントとして使いながら、
常に あなたがアーキテクトであり続けることです。
