# 快速参考卡片

## 🚀 五个核心命令

```bash
make run-0     # Mock 模式（秒启动，无需 Docker）
make run-1     # 开发模式（Docker 依赖 + 本地热加载）
make run-2     # 生产模式（全部容器化）
make clean-1   # 清理开发环境
make clean-2   # 清理生产环境
```

---

## 📋 模式对比

| 特性 | run-0 | run-1 | run-2 |
|------|-------|-------|-------|
| **后端位置** | 本地 | 本地 | 容器 |
| **数据库** | Mock | 容器 | 容器 |
| **热加载** | ✅ | ✅ | ❌ |
| **启动速度** | ⚡ 秒启 | 🔥 5秒 | 🐳 30秒 |
| **适用场景** | 快速开发 | 日常开发 | 部署测试 |
| **依赖 Docker** | ❌ | ✅ | ✅ |

---

## 🎯 使用场景

### 场景 1: 快速功能开发
```bash
make run-0
# 修改代码，自动重新编译
# Ctrl+C 停止
```

### 场景 2: 日常开发（推荐）
```bash
make run-1
# 修改代码，自动重新编译
# Ctrl+C 停止后端（数据库继续运行）

# 第二天继续
make run-1  # 数据库还在，直接启动

# 重置数据库
make clean-1
make run-1
```

### 场景 3: 部署前测试
```bash
make run-2
# 查看日志
docker compose --profile backend logs -f

# 测试完成
make clean-2
```

---

## 🔧 Docker Compose 直接使用

### 启动依赖（run-1 等价）
```bash
docker compose up -d postgres
go run cmd/api/main.go
```

### 启动完整环境（run-2 等价）
```bash
docker compose --profile backend up -d
```

### 查看状态
```bash
docker compose ps                      # run-1
docker compose --profile backend ps    # run-2
```

### 停止
```bash
docker compose down                    # run-1
docker compose --profile backend down  # run-2
```

---

## 📂 关键文件

| 文件 | 说明 |
|------|------|
| `Makefile` | 5个核心命令 |
| `docker-compose.yml` | 使用 profile 的统一配置 |
| `.air.toml` | 热加载配置 |
| `env.example` | 环境变量模板 |

---

## 🐳 Docker Compose Profile 原理

```yaml
# docker-compose.yml
services:
  postgres:
    # 默认启动（无需 profile）
    
  backend:
    profiles: [backend]  # 需要 --profile backend
```

**使用方式**:
```bash
docker compose up -d               # 只启动 postgres
docker compose --profile backend up -d  # 启动 postgres + backend
```

---

## 💡 快速提示

- 首次使用运行: `go install github.com/cosmtrek/air@latest`
- 查看帮助: `make` 或 `make help`
- 完整文档: 查看 `DEVELOPMENT.md`
- 审查报告: 查看 `REVIEW.md`

---

## 🎯 一句话总结

**三种模式，五个命令，一个 Docker Compose 文件。**

