AIを使ってコードをデリバリーする方法
小賢しいプロンプトを書こうとするのはやめましょう。コンテキストをエンジニアリングすることから始めてください。
多くの人はAIを間違った方法で使っています。一文で機能を要求するのです。するとAIは、間違ったライブラリを使用し、命名規則を無視し、古いバグを再発させるようなコードを返してきます。結局、午後の時間はその修正に費やされることになります。
コンテキストのないAIは、あなたのコードベースを一度も読んだことがないジュニアデベロッパーと同じです。昨日のことはすべて忘れてしまいます。新人に一行だけのチケットを渡して、完璧なコードを期待することはないはずです。代わりにオンボーディングドキュメントを渡すでしょう。
私はリポジトリ内に「プロジェクト・メモリ・ファイル(project memory file)」を使用しています。このファイルは、AIが毎回読み込むオンボーディングドキュメントとして機能します。そこには、外部の人間にはわからないプロジェクト固有のルールが含まれています。
• 譲れないルール:URLの形式や、スラッグを本番環境と一致させる方法。 • ロジックのルール:数値をハードコードするのではなく、設定から値を導出すること。 • エッジケース:サイレントな破損を防ぐための、特定のCDN設定やファイルパス。
私が犯すすべてのミスが、このファイルの一行になります。これにより、ファイルは複利的に価値を生む資産へと変わります。同じことを繰り返さなくて済むようになるため、AIの出力品質は時間の経過とともに向上していきます。
私のワークフローは以下のステップに従っています。
- コンテキストのブートストラップ:AIにコードからメモリ・ファイルのドラフトを作成させ、それを自分で編集します。
- タスクの再定義:コードを書く前に、AIにゴールを要約させます。これにより、早い段階でエラーを検知できます。
- プロンプトの改善:依頼内容のどこが曖昧かをAIに尋ねます。
AIを活用すべきタスク:
- ボイラープレートやスキャフォールディングの作成。
- パターンに従ったリファクタリング。
- 未知のコードの解説。
- リポジトリ全体に対する機械的なスキャン。
- テストやフィクスチャの作成。
AIの使用を避けるべきタスク:
- 新規のアーキテクチャ決定。
- センスやプロダクトに関する判断。
- 間違いのコストが高いもの。
- セキュリティ上重要な設計。
- デリバリー前の最終レビュー。
規律はシンプルです:
- タスクの範囲を小さくする。「この機能を構築して」と言うのではなく、「この特定の変更を行って」と言います。
- コンテキストを事前に提供する。
- すべての出力を検証する。ビルドを実行し、diffを確認します。
- ジュニアデベロッパーのPRのようにレビューする。人間が読んでいないコードをコミットしてはいけません。
- 学んだ教訓をコンテキスト・ファイルにフィードバックする。
レバレッジはプロンプトにあるのではありません。あなたが維持しているコンテキストにこそ、レバレッジがあるのです。
Optional learning community: https://t.me/GyaanSetuAi
