日本の開発現場における最強AIプロンプトチートシート①- 目次・基本概念

## 全体目次
1. **[目次・基本概念](https://qiita.com/masterpiecehack/items/5c4a09e274326a8165e7)**
   - はじめに：AIを開発現場で活用する
   - 効果的なプロンプトの基本原則
   - プロンプト改善のコツ

2. **[プロジェクトマネジメント](https://qiita.com/masterpiecehack/items/b6e4ddae8479087bcc4d)**
   - 計画策定（プロジェクト計画、要員計画、テスト全体計画、移行計画、SLA）
   - 見積もり（3秒見積もり、概算見積もり、詳細見積もり）
   - プロジェクト管理（コミュニケーションルール、体制図、進捗管理ルール、課題管理ルール、変更管理ルール、品質管理ルール）

3. **[要件定義・分析](https://qiita.com/masterpiecehack/items/31951044528f566576a8)**
   - 要件整理・分析
   - ユーザーストーリー作成
   - 要件定義書作成
   - ユースケース作成
   - 各種レビュープロンプト

4. **[設計・実装・単体テスト・コードレビュー](https://qiita.com/masterpiecehack/items/e9da5ccd93da391ab53b)**
   - 基本設計（システム方式設計、データベース、アプリケーション）
   - 詳細設計（画面、ビジネスロジック処理、バッチ処理、テーブル、帳票、API）
   - 方式設計（バッチ方式、インターフェース方式、ジョブ方式）
   - データ移行設計
   - 監視設計
   - コード作成・修正
   - 単体テスト
   - デバッグ・エラー解決
   - コードレビュー

5. **[テスト（単体テスト除く）](https://qiita.com/masterpiecehack/items/4054e4a173281685eca2)**
   - テスト計画・設計
     - 結合テスト計画（サブシステム内機能結合）
     - 統合テスト計画（サブシステム間・外部システム連携）
     - システムテスト計画
     - 非機能テスト計画
     - 受入テスト計画
   - 結合テスト（サブシステム内部の機能結合テスト）
   - 統合テスト（サブシステム間・外部システム連携テスト）
   - システムテスト（エンドツーエンドの業務フロー検証）
   - 非機能テスト（性能テスト、負荷テスト、セキュリティテスト）
   - 受入テスト

6. **[パフォーマンス・セキュリティ](https://qiita.com/masterpiecehack/items/f038b2c73c411aad1cc1)**
   - パフォーマンス最適化
   - セキュリティ対策

7. **[運用・保守・ドキュメント](https://qiita.com/masterpiecehack/items/58f4dc09bb2050e200f9)**
   - ユーザーマニュアル・技術ガイド作成
   - リリース・運用
   - 保守・改善（レガシーコード対応、リバースエンジニアリング、モダナイズ、変更の影響調査）
   - チームコミュニケーション
   - 技術調査・学習
   - DevOps・CI/CD

8. **[クラウド・インフラ](https://qiita.com/masterpiecehack/items/4d5c79c5c1a8b842e468)**
   - クラウド構成設計
   - インフラ構築・運用
   - クラウドサービス活用
   - コンテナ・仮想化
   - インフラ自動化

## はじめに：AIを開発現場で活用する

開発現場でAIを効果的に活用するためには、明確で具体的な指示（プロンプト）を書くことが重要です。このチートシートでは、日本の開発現場における様々なシーンに最適化されたプロンプトテンプレートを提供します。

プロンプトエンジニアリングとは、AIモデルから最適な回答を引き出すための指示文（プロンプト）を設計・最適化するスキルです。適切なプロンプトを使用することで、以下のようなメリットがあります：

- 開発作業の効率化・高速化
- 一貫性のある成果物の生成
- 品質向上とミスの削減
- ナレッジ共有の促進
- 属人化の軽減

日本の開発現場では、独自の開発手法や文化的背景があります。このチートシートでは、そうした特性を考慮し、実務で即活用できるプロンプトテンプレートを集約しています。

## 効果的なプロンプトの基本原則

AIから最適な回答を得るためには、以下の基本原則を意識してプロンプトを作成しましょう：

### 1. 具体的な指示を与える

曖昧な指示ではなく、具体的に求めている結果を明確に伝えましょう。

**悪い例**：
```
設計書を作ってください。
```

**良い例**：
```
Javaで実装する会員登録機能のAPI設計書を作成してください。RESTful APIとし、必要なエンドポイント、パラメータ、レスポンス形式、エラーハンドリングを含めてください。
```

### 2. 背景情報を提供する

関連する情報や背景を十分に説明することで、より的確な回答を得られます。

**悪い例**：
```
このエラーを修正してください。
NullPointerException at line 42 in UserService.java
```

**良い例**：
```
以下のエラーが発生しています：
NullPointerException at line 42 in UserService.java

関連コード：
[コードを貼り付け]

このエラーはユーザー情報の取得時に発生しており、データベース接続は正常に確立されていますが、特定の条件でユーザーオブジェクトがnullになります。原因と解決策を教えてください。
```

### 3. 出力形式を指定する

必要な形式を明示的に伝えることで、期待通りの形式の回答を得やすくなります。

**悪い例**：
```
プロジェクト計画を立てて。
```

**良い例**：
```
以下の情報に基づいてプロジェクト計画を作成してください：
[プロジェクト情報]

出力形式：
- プロジェクト概要（100字程度）
- 主要マイルストーン（5つ程度、日付と成果物）
- WBS（作業分解構造）を表形式で
- リスク一覧（影響度と対策を含む）
```

### 4. 制約条件を明記する

制約やルールを明確にすることで、要件に沿った回答を得やすくなります。

**悪い例**：
```
Pythonでデータ分析コードを書いて。
```

**良い例**：
```
以下の要件に従ってPythonでデータ分析コードを書いてください：
- pandas, matplotlib, seabornのみを使用すること
- 処理時間を最適化すること
- PEP8のコーディング規約に従うこと
- 100MB以上のCSVファイルでも動作すること
- コメントは日本語で記述すること
```

### 5. 日本語特有の言い回しに注意する

日本語特有の曖昧な表現や遠回しな言い方を避け、明確に伝えましょう。

**悪い例**：
```
もしよろしければ、できれば、テストケースを少し考えていただけると助かります。
```

**良い例**：
```
以下の関数のテストケースを10個作成してください：
[関数の仕様や実装]

各テストケースには以下を含めてください：
- 入力値
- 期待される出力値
- テストの目的（境界値、異常系など）
```

## プロンプト改善のコツ

効果的なプロンプトを作成・改善するためのコツをご紹介します：

### 1. 反復的な改善を行う

完璧なプロンプトを一発で作るのは難しいため、AIの回答を見て継続的に改善しましょう。

```
前回のプロンプトの回答を踏まえて、以下の点を改善してください：
- XXXについてより詳細な説明を追加
- YYYのフォーマットをより構造化
- ZZZについては含めない
```

### 2. ロールプレイを活用する

AIに特定の役割を与えることで、専門的な視点からの回答を促せます。

```
あなたは10年以上の経験を持つシニアバックエンドエンジニアとして、このコードをレビューしてください。特にパフォーマンス、セキュリティ、保守性の観点から改善点を指摘してください。
```

### 3. 模範例を示す

理想的な回答の例を示すことで、AIはそのパターンを学習し同様の形式で回答します。

```
以下の形式でコードレビューを行ってください：

例：
コード：[コード断片]
問題点：[問題の説明]
重要度：[高/中/低]
改善案：[修正後のコード]

以下のコードをレビューしてください：
[レビュー対象コード]
```

### 4. 段階的な指示を与える

複雑なタスクは、単純なステップに分解して指示すると良い結果が得られます。

```
以下の手順でデータベース設計を行ってください：

1. まず、要件から必要なエンティティを特定する
2. 各エンティティの属性を列挙する
3. エンティティ間のリレーションシップを定義する
4. 正規化を行う
5. 物理設計（テーブル、カラム、制約）に変換する
```

### 5. フィードバックループを作る

AIからのフィードバックを求めると、より洗練された成果物が得られます。

```
この設計案について、以下の点で自己評価を行い、改善点を指摘してください：
- 拡張性
- 保守性
- パフォーマンス
- セキュリティ
```

### 6. マルチモーダル入力の活用

文章だけでなく、図表や構造化データも組み合わせて使用します。

```
以下のER図と画面イメージを参考に、データアクセス層の設計を行ってください：
[ER図のテキスト表現]
[画面イメージの説明]
```

### 7. プロジェクト固有のコンテキストを提供

プロジェクト特有の用語や背景を説明すると、より適切な回答が得られます。

```
当プロジェクトは金融系レガシーシステムのマイクロサービス化を目指しています。以下の技術スタックと制約条件を踏まえて、移行戦略を提案してください：
[技術スタックの詳細]
[制約条件]
[既存システムの概要]
```

これらのコツを活用して、日本の開発現場に最適化されたプロンプトを作成し、AIの能力を最大限に引き出しましょう。