Initial commit
This commit is contained in:
129
commands/kb-start.md
Normal file
129
commands/kb-start.md
Normal file
@@ -0,0 +1,129 @@
|
||||
---
|
||||
description: 啟動新的 TDD 會話。遵循 Kent Beck 的純粹 TDD 理念,從第一個測試開始。
|
||||
---
|
||||
|
||||
# TDD Start - 啟動 TDD 會話
|
||||
|
||||
開始一個新的 TDD 開發會話。遵循 Kent Beck 的理念:從測試開始,讓設計演進。
|
||||
|
||||
**【功能想法】**:{{brief_idea}}
|
||||
|
||||
## Kent Beck 的起點
|
||||
|
||||
> "開始時不要想太多,從最簡單的測試開始。"
|
||||
|
||||
**不要做:**
|
||||
- ❌ 寫完整的需求文件
|
||||
- ❌ 規劃所有測試案例
|
||||
- ❌ 事先設計類別結構
|
||||
- ❌ 想太多細節
|
||||
|
||||
**要做:**
|
||||
- ✅ 想一個最簡單的情境
|
||||
- ✅ 寫出第一個測試
|
||||
- ✅ 讓測試驅動設計
|
||||
|
||||
## 開始步驟
|
||||
|
||||
### 1. 建立開發記錄
|
||||
|
||||
在 `docs/tdd/{feature_name}/` 建立:
|
||||
```
|
||||
journey.md - TDD 開發旅程記錄(不是計劃)
|
||||
```
|
||||
|
||||
### 2. 想第一個測試
|
||||
|
||||
問自己:
|
||||
- 什麼是最簡單的使用情境?
|
||||
- 什麼是最明顯的行為?
|
||||
- 從哪裡開始最容易?
|
||||
|
||||
**範例思考過程:**
|
||||
```
|
||||
功能想法:「計算購物車總價」
|
||||
|
||||
❌ 不要想:
|
||||
- 需要支援優惠券
|
||||
- 需要處理多幣別
|
||||
- 需要計算稅金
|
||||
- ...
|
||||
|
||||
✅ 只想:
|
||||
「一個商品的購物車,總價應該等於商品價格」
|
||||
|
||||
這就是第一個測試!
|
||||
```
|
||||
|
||||
### 3. journey.md 初始格式
|
||||
|
||||
```markdown
|
||||
# {feature_name} TDD Journey
|
||||
|
||||
## 開始想法
|
||||
{簡單描述要做什麼,1-2 句話}
|
||||
|
||||
## TDD 循環記錄
|
||||
|
||||
### 第 1 輪 - {日期時間}
|
||||
|
||||
#### 🤔 想法
|
||||
{為什麼要寫這個測試?}
|
||||
|
||||
#### 📝 下一步
|
||||
執行 /kb-red 寫第一個測試
|
||||
```
|
||||
|
||||
## 心態準備
|
||||
|
||||
Kent Beck 強調的 TDD 心態:
|
||||
|
||||
**好奇心**
|
||||
- "如果我這樣寫測試會怎樣?"
|
||||
- 用測試來探索問題
|
||||
|
||||
**勇氣**
|
||||
- 敢於寫會失敗的測試
|
||||
- 敢於用最簡單的方式實作
|
||||
|
||||
**簡單**
|
||||
- 從最簡單的開始
|
||||
- 不要過度設計
|
||||
|
||||
**反饋**
|
||||
- 頻繁執行測試
|
||||
- 快速得到反饋
|
||||
|
||||
## 範例:開始一個 Money 類別
|
||||
|
||||
```markdown
|
||||
# Money TDD Journey
|
||||
|
||||
## 開始想法
|
||||
建立一個 Money 類別,可以處理金錢運算。
|
||||
|
||||
## TDD 循環記錄
|
||||
|
||||
### 第 1 輪 - 2025-10-15 21:30
|
||||
|
||||
#### 🤔 想法
|
||||
最簡單的情境:5 元乘以 2 應該等於 10 元。
|
||||
|
||||
#### 📝 下一步
|
||||
執行 /kb-red 寫第一個測試
|
||||
```
|
||||
|
||||
## 下一步
|
||||
|
||||
準備好了嗎?執行:
|
||||
```
|
||||
/kb-red
|
||||
```
|
||||
|
||||
開始寫你的第一個測試!
|
||||
|
||||
## 記住 Kent Beck 的話
|
||||
|
||||
> "TDD 的目的不是測試,而是思考。"
|
||||
> "從最簡單的測試開始,讓複雜度自然演進。"
|
||||
> "如果不知道該寫什麼測試,那就寫一個你知道答案的測試。"
|
||||
Reference in New Issue
Block a user