23 ポイント 投稿者 GN⁺ 2025-06-06 | まだコメントはありません。 | WhatsAppで共有
  • AIコーディング支援ツールはプロジェクトの意図を自力で把握できないため、開発者が 文脈・目標・例 をどれだけ適切に与えるかで結果の品質が大きく変わる
  • デバッグではコードとエラーだけを投げるのではなく、期待する動作、実際の動作、実行環境をあわせて示し、行ごとの追跡 や最小再現例で問題の範囲を絞り込むべき
  • リファクタリングと最適化では「もっと良く」ではなく、重複排除、並列処理、エラー処理の維持、バージョン制約といった 成功基準 を明確にする必要がある
  • 新機能の実装は全体を一度に任せるより、計画、骨組み、状態管理、API連携、エッジケースを 小さな段階 に分けて確認しながら拡張する方法が安全
  • 曖昧な質問、過剰な要求、質問のないコードの丸投げ、不明確な参照は結果を不安定にし、AIは一回きりの生成器より 反復的な対話型ペアプログラマー として扱うべき

AIコーディング支援ツールをうまく使うための基本原則

  • AIコーディング支援ツールは関数の自動補完、バグ修正の提案、モジュールやMVPの生成まで支援できるが、プロジェクトの具体的な意図はユーザーが提供する情報に依存する
  • 良いプロンプトはAIを「言葉どおりに受け取る協業相手」のように扱い、望む結果と形式を明確に案内する
  • 基本原則は次のとおり
    • 豊富な文脈を与える: 言語、フレームワーク、ライブラリ、関連する関数やコード断片、正確なエラーメッセージ、期待する動作を含める
    • 目標を具体化する: 「なぜ動かない?」より「このJavaScript関数が期待値ではなくundefinedを返す理由と修正方法」のように質問を絞る
    • 複雑な作業を分解する: 大きな機能を一度に依頼せず、Reactコンポーネントの骨組み生成、状態管理の追加、API呼び出しの統合のように順番に進める
    • 入出力例を示す: [3,1,4] の入力が [1,3,4] を返すべきだというような例は、要件の曖昧さを減らす
    • 役割を指定する: 「senior React developer」「JavaScript performance expert」「code reviewer」のように役割を与えると、回答の深さやスタイルを調整できる
    • 反復して修正する: 最初の回答が合わなければ、再帰の代わりに反復文を使う、変数名を改善する、コメントを追加する、といった追加入力で方向を調整する
    • コードの明確さを保つ: 意味のある関数名と変数名、一貫したフォーマット、コメントやdocstringは、AIがコードの意図を把握する手がかりになる

デバッグプロンプトのパターン

  • デバッグ依頼には、そのコードが何をすべきか、実際には何が問題なのか、どのようなエラーが発生しているのかをあわせて含める必要がある
  • 良いデバッグプロンプトには通常、次の情報が含まれる
    • 使用言語と実行環境
    • 問題のコード
    • 正確なエラーメッセージまたは誤った出力
    • 期待する出力
    • 入力例
    • すでに試した方法
  • 複雑なロジックバグでは、AIに 行ごとの実行追跡 を依頼して状態変化を追わせることができる
    • 例: 「この関数で total の値が各段階でどう変化するかを追跡し、どこで累積が誤っているか見つけてほしい」
  • コードベースが大きくても、バグを再現する小さなコード断片を作れるなら、最小再現例 として提示するほうがよい
  • 最初の回答が部分的にしか役立たなかった場合は、「修正後のコードを見せて」「なぜこの変更で問題が解決するのか説明して」のように追加質問を続けられる

デバッグ例: 曖昧な質問と改善された質問

  • 例のコードは mapUsersById(users) がユーザー配列をIDベースのオブジェクトに変換しようとする Node.js/JavaScript 関数
  • バグは `for (let i = 0; i

まだコメントはありません。

まだコメントはありません。