# 🤖 AI 學習 Prompt 大全

這份文件收錄了學習 SDD 開發技術時最實用的 AI Prompts，讓你能高效地使用 ChatGPT、Claude 等 AI 工具加速學習。

---

## 📋 使用說明

### 如何使用這些 Prompts

1. **複製範本** - 選擇適合的 Prompt 範本
2. **填入資訊** - 將 `{變數}` 替換為實際內容
3. **提問 AI** - 貼到 ChatGPT 或 Claude
4. **迭代優化** - 根據回答繼續追問

### Prompt 品質指標

- ✅ **好的 Prompt**：具體、有背景、明確要求
- ❌ **不好的 Prompt**：模糊、缺乏背景、要求不清

---

## 🎯 分類目錄

1. [模組 0：規格驅動思維](#模組-0規格驅動思維)
2. [模組 1：開發者工具包](#模組-1開發者工具包)
3. [模組 2：SDD 核心循環](#模組-2sdd-核心循環)
4. [模組 3：軟體架構](#模組-3軟體架構)
5. [模組 4：進階 AI 協作](#模組-4進階-ai-協作)
6. [通用學習 Prompts](#通用學習-prompts)
7. [問題解決 Prompts](#問題解決-prompts)

---

## 📘 模組 0：規格驅動思維

### Prompt 1: 學習 User Story

```markdown
你是資深產品經理，擅長使用者故事撰寫。

我正在學習如何撰寫 User Story。

請提供：
1. User Story 的完整定義和結構
2. 好的 User Story 的 INVEST 原則
3. 5 個{領域}的 User Story 範例（如：線上教育、工作室管理、個人工具）
4. 3 個常見錯誤和改善方式

請用中文解釋，並提供具體範例。
```

**範例使用：**
- 將 `{領域}` 替換為「線上教育」
- 將 `{領域}` 替換為「小型工作室」

---

### Prompt 2: 撰寫 Gherkin 場景

```markdown
你是 QA 專家，專精於 BDD 和 Gherkin 語法。

我需要為以下功能撰寫 Gherkin 場景：

【功能描述】
{描述你要開發的功能}

【User Story】
{貼上你的 User Story}

請提供：
1. 至少 3 個完整的 Gherkin 場景
2. 包含：成功路徑、錯誤處理、邊界情況
3. 使用 Given-When-Then 格式
4. 中文撰寫

請確保場景具體、可測試。
```

**範例：**
```
【功能描述】
線上教師的課程預約系統

【User Story】
身為線上教師，我想要設定可預約時段，以便於學生知道何時可以預約課程。
```

---

### Prompt 3: 規格審查

```markdown
你是資深系統分析師和 QA 專家，擁有 10 年以上需求分析經驗。

請審查以下規格文件：

【規格內容】
{貼上你的規格}

【審查重點】
1. 完整性：是否遺漏重要場景？
2. 明確性：是否有模糊不清的描述？
3. 可測試性：是否所有條件都可測試？
4. 安全性：是否考慮了安全風險？
5. 使用者體驗：流程是否合理？

請以清單方式列出：
- 🔴 嚴重問題（必須處理）
- 🟡 建議補充
- ✅ 做得好的地方

並為每個問題提供具體改善建議。
```

---

### Prompt 4: 場景補充建議

```markdown
你是經驗豐富的測試工程師。

我已經寫了以下場景：

{貼上現有場景}

請幫我找出可能遺漏的場景，特別是：
1. 邊界情況（boundary cases）
2. 錯誤處理（error handling）
3. 安全性考量（security）
4. 效能問題（performance）
5. 使用者體驗（UX）

請提供至少 5 個補充場景的建議。
```

---

## 🛠️ 模組 1：開發者工具包

### Prompt 5: Git 命令解釋

```markdown
我是 Git 初學者。

請解釋以下 Git 概念：
{git add / git commit / git branch / git merge 等}

請提供：
1. 簡單易懂的定義
2. 什麼時候使用
3. 具體的命令範例
4. 常見錯誤和如何避免

用生活化的比喻解釋，避免過於技術性的術語。
```

---

### Prompt 6: 環境設定問題

```markdown
我在設定開發環境時遇到問題。

【作業系統】{Mac / Windows / Linux}

【問題描述】
{詳細描述你遇到的錯誤}

【錯誤訊息】
{貼上錯誤訊息}

【已嘗試的解決方法】
{列出你已經試過的方法}

請提供：
1. 可能的原因分析
2. 詳細的解決步驟
3. 如何驗證問題已解決
```

---

### Prompt 7: VS Code 快捷鍵學習

```markdown
我正在使用 VS Code，想提升開發效率。

【我的工作內容】
{描述你主要做什麼，如：JavaScript 開發、測試撰寫}

【作業系統】
{Mac / Windows}

請推薦：
1. 10 個最實用的快捷鍵（按重要性排序）
2. 每個快捷鍵的使用場景
3. 記憶技巧

請用表格格式呈現。
```

---

## 🔄 模組 2：SDD 核心循環

### Prompt 8: 生成 Jest 測試

```markdown
你是專精於 TDD 的資深開發者。

請根據以下規格，使用 Jest 撰寫測試程式碼。

【規格內容】
{貼上你的 Gherkin 場景}

【技術要求】
- 使用 Jest 測試框架
- 每個場景對應一個 describe 區塊
- 使用 Arrange-Act-Assert 模式
- 測試描述使用中文
- 包含所有必要的 expect 斷言
- 考慮邊界情況

請生成完整的測試檔案，並解釋測試策略。
```

---

### Prompt 9: 實作功能程式碼

```markdown
你是資深 JavaScript 開發者。

以下是我的測試檔案，目前全部失敗：

【測試檔案】
{貼上測試程式碼}

【錯誤訊息】
{貼上測試執行的錯誤}

請實作讓所有測試通過的程式碼。

【要求】
- 最簡實作（避免過度設計）
- 包含適當的中文註解
- 遵循 Clean Code 原則
- 適當的錯誤處理
- 解釋關鍵設計決策

請提供完整的實作檔案。
```

---

### Prompt 10: 理解測試錯誤

```markdown
我的測試失敗了，但我不太理解錯誤訊息。

【測試程式碼】
{貼上失敗的測試}

【錯誤訊息】
{貼上完整錯誤訊息}

【預期行為】
{描述你認為應該發生什麼}

請幫我：
1. 用簡單的語言解釋錯誤原因
2. 指出問題在哪裡（測試或實作）
3. 提供修正建議
4. 給我修正後的程式碼

請一步步解釋。
```

---

### Prompt 11: 重構建議

```markdown
以下程式碼可以正常運作，但我想優化它。

【目前程式碼】
{貼上你的程式碼}

【測試程式碼】
{貼上相關測試}

【優化目標】
- 提升可讀性
- 減少重複代碼
- 改善錯誤處理
- 提升效能（如果有機會）

請提供：
1. 重構後的程式碼
2. 每個改動的理由說明
3. 需要注意的地方
4. 如何驗證重構沒有破壞功能

確保所有測試仍然通過。
```

---

## 🏗️ 模組 3：軟體架構

### Prompt 12: 模組化設計建議

```markdown
你是資深軟體架構師。

我正在設計一個{系統名稱}系統。

【需求功能】
{列出主要功能，如：
1. 用戶管理
2. 內容發布
3. 評論系統
4. 搜尋功能}

請幫我：
1. 劃分合理的功能模組
2. 設計專案資料夾結構
3. 定義模組間的 API 介面
4. 說明模組劃分的理由
5. 指出潛在的架構風險

請使用樹狀圖展示結構。
```

---

### Prompt 13: 關注點分離審查

```markdown
你是 Clean Code 專家。

請審查以下程式碼是否違反「關注點分離」原則：

【程式碼】
{貼上你的程式碼}

請分析：
1. 這個函數/類別負責了哪些職責？
2. 是否違反單一職責原則？
3. 如何重構讓職責更清晰？
4. 重構後的程式碼範例
5. 重構的好處

請提供具體的改善建議。
```

---

### Prompt 14: API 設計評估

```markdown
你是 API 設計專家。

我設計了以下 API 介面：

【API 介面】
{貼上你的 API 定義}

請評估：
1. 命名是否清晰一致？
2. 介面是否易於使用？
3. 是否有安全性問題？
4. 錯誤處理是否完善？
5. 文件是否充足？

請提供改善建議和優化後的 API 設計。
```

---

## 🤖 模組 4：進階 AI 協作

### Prompt 15: System Prompt 設計

```markdown
我想為特定開發任務設計一個有效的 System Prompt。

【任務類型】
{如：前端開發、API 設計、測試撰寫}

【技術棧】
{如：React、Node.js、Jest}

【工作風格偏好】
{如：簡潔、詳細解釋、包含範例}

請幫我設計一個 System Prompt，包含：
1. AI 的角色定位
2. 專業背景設定
3. 工作方式說明
4. 回應格式要求
5. 注意事項

請提供完整的 System Prompt 範本。
```

---

### Prompt 16: 程式碼審查

```markdown
請以資深工程師的角度審查以下程式碼。

【程式碼】
{貼上你的程式碼}

【審查標準】
1. SOLID 原則：是否違反？
2. 安全性：是否有漏洞風險？
3. 效能：是否有瓶頸？
4. 可讀性：命名、註解、結構
5. 可測試性：是否容易測試？
6. 錯誤處理：是否完善？

請提供：
- 發現的問題（按嚴重性分級）
- 具體改善建議
- 修改後的程式碼範例
- 最佳實踐建議
```

---

### Prompt 17: 學習路徑建議

```markdown
你是經驗豐富的技術導師。

【我的背景】
{描述你的背景，如：完全新手、有基礎、專業開發者}

【學習目標】
{你想達成什麼，如：轉職、提升技能、學習新技術}

【可用時間】
每週 {X} 小時

【已學內容】
{列出已經完成的模組}

請為我：
1. 制定未來 4 週的學習計劃
2. 推薦重點學習內容
3. 建議實作專案
4. 提供學習資源
5. 設定檢核點

請以表格或清單形式呈現。
```

---

## 🎓 通用學習 Prompts

### Prompt 18: 概念解釋（初學者版）

```markdown
我是程式設計新手，剛接觸到「{術語}」這個概念。

請用最簡單的方式解釋：
1. 這是什麼？（用生活化的比喻）
2. 為什麼需要它？（解決什麼問題）
3. 什麼時候使用？（使用場景）
4. 簡單的程式碼範例（加上詳細註解）
5. 常見誤解

避免使用過於技術性的術語。
如果必須使用，請先解釋該術語。
```

**範例術語：**
- 依賴注入
- 非同步程式設計
- 閉包
- Promise

---

### Prompt 19: 深入學習

```markdown
我已經理解「{概念}」的基本概念，想深入學習。

請提供：
1. 底層原理或運作機制
2. 進階應用場景
3. 與其他概念的關聯
4. 實際專案中的最佳實踐
5. 常見陷阱和如何避免
6. 3 個從簡單到複雜的範例
7. 推薦的學習資源（文章、影片、書籍）

請用 JavaScript/Node.js 作為範例語言。
```

---

### Prompt 20: 比較學習

```markdown
我想理解「{概念 A}」和「{概念 B}」的差異。

請提供：
1. 各自的定義
2. 使用場景比較（表格呈現）
3. 優缺點分析
4. 何時選擇 A，何時選擇 B
5. 並列的程式碼範例（做同一件事）
6. 實際專案中的選擇建議

請用清晰的表格和範例說明。
```

**範例比較：**
- TDD vs BDD
- Git merge vs Git rebase
- Promise vs async/await
- 模組化 vs 微服務

---

## 🔧 問題解決 Prompts

### Prompt 21: 除錯協助

```markdown
我的程式碼有 bug，需要協助除錯。

【預期行為】
{描述應該發生什麼}

【實際行為】
{描述實際發生什麼}

【程式碼】
{貼上相關程式碼}

【錯誤訊息】（如果有）
{貼上完整錯誤訊息}

【已嘗試的方法】
{列出你已經試過的方法}

請幫我：
1. 分析可能的原因（列出 3-5 個）
2. 建議除錯步驟
3. 提供修正方案
4. 解釋為什麼會發生這個問題
5. 如何預防類似問題
```

---

### Prompt 22: 效能優化

```markdown
這段程式碼運作緩慢，需要優化。

【程式碼】
{貼上需要優化的程式碼}

【效能問題】
{描述具體的效能問題，如：處理 1000 筆資料需要 5 秒}

【限制條件】
{如：不能改變 API 介面、必須支援 IE11}

請提供：
1. 效能瓶頸分析
2. 優化建議（按影響大小排序）
3. 優化後的程式碼
4. 預期的效能提升
5. 可能的權衡（trade-offs）

請保持程式碼可讀性。
```

---

### Prompt 23: 技術選型建議

```markdown
我需要為專案選擇技術方案。

【專案需求】
{描述專案需求}

【考慮方案】
1. {方案 A}
2. {方案 B}
3. {方案 C}

【限制條件】
- 團隊規模：{人數}
- 專案期限：{時間}
- 維護需求：{長期/短期}
- 預算：{有限/充足}

請幫我：
1. 分析各方案的優缺點
2. 提供選擇建議（附理由）
3. 指出潛在風險
4. 給出學習曲線評估
5. 推薦最適合的方案

請用表格比較。
```

---

## 💡 進階技巧

### 技巧 1: 迭代式提問

不要期待一次就得到完美答案，而是持續追問：

```
第一輪：基本理解
第二輪：深入細節
第三輪：實際應用
第四輪：邊界情況
```

**範例：**
```
1. 「請解釋什麼是依賴注入」
2. 「在 JavaScript 中如何實作依賴注入？」
3. 「在測試時，依賴注入如何幫助我 mock 服務？」
4. 「如果有循環依賴，該如何處理？」
```

---

### 技巧 2: 提供背景資訊

越多背景資訊，AI 的回答越精準：

✅ **好的提問：**
```
我正在開發一個小型工作室的時間追蹤系統。
技術棧：Node.js + Jest
團隊：1 人（我）
經驗：完成了模組 0-2

現在想實作「編輯時間記錄」功能...
```

❌ **不好的提問：**
```
如何編輯資料？
```

---

### 技巧 3: 要求特定格式

明確告訴 AI 你想要的輸出格式：

```
請以表格形式比較...
請用清單列出...
請提供程式碼範例...
請畫出流程圖...
請用 Markdown 格式...
```

---

## 📚 Prompt 範本收藏

將常用的 Prompts 儲存為範本，建立你的個人 Prompt 庫：

```markdown
我的 Prompt 範本庫/
├── 規格審查範本.md
├── 測試生成範本.md
├── 程式碼審查範本.md
├── 除錯協助範本.md
└── 學習提問範本.md
```

---

## 🎯 學習建議

1. **從簡單開始**：先用基礎 Prompts 練習
2. **記錄有效 Prompts**：把好用的 Prompts 記下來
3. **持續優化**：根據回答品質調整 Prompts
4. **分享交流**：與其他學習者交換好用的 Prompts

---

祝你學習順利，善用 AI 加速成長！🚀

