---
# System prepended metadata

title: 第九天 - 後端 CRUD 入門
tags: [2026 後端工程師體驗營]

---

# Day 9 - CRUD 入門：後端工程師的日常

## 劇情背景

你正盯著螢幕上前任工程師留下的程式碼，看著 routes、controllers、entities 這些資料夾發呆...

海克絲走過來：「在研究前任的 Code 嗎？」

你嚇一跳：「是的，但...看不太懂...」

海克絲笑著拉過一張椅子：「來，我陪你一起看。不過在看這坨義大利麵之前，我想先問你一個問題——你知道什麼是 CRUD 嗎？」


![截圖 2026-01-22 下午3.30.15 (1)](https://hackmd.io/_uploads/H1u2GIJLWg.png)




---

## 學習目標

- 理解 CRUD 是什麼（新增、讀取、更新、刪除）
- 知道 CRUD 和 Day 7 學的 SQL 有什麼關係
- 了解後端程式碼放在哪裡（routes、controllers）
- 理解為什麼有些功能需要驗證身份

---

## 核心概念

### CRUD 是什麼？

CRUD 是四個基本資料操作的縮寫，90% 的後端程式碼都是在做這些事：

| 字母 | 功能 | 白話文 | 對應 SQL |
|------|------|--------|----------|
| C | Create | 新增資料 | INSERT |
| R | Read | 讀取資料 | SELECT |
| U | Update | 更新資料 | UPDATE |
| D | Delete | 刪除資料 | DELETE |

**生活化的例子：**
- 新增文章、查看文章、編輯文章、刪除文章
- 新增會員、查詢會員、修改個人資料、刪除帳號
- 教練新增課程、查看課程列表、修改課程、刪除課程

### Day 7 SQL vs Day 9 後端 CRUD

| Day 7 | Day 9 |
|-------|-------|
| 用 DBeaver 手動下 SQL 指令 | 用後端程式自動執行 |
| 開發時用來除錯、查資料 | 正式環境讓程式自動處理 |
| 管理工具的方式 | 程式碼的方式 |

**重點：** 兩種方式做的事情是一樣的（CRUD），只是一個手動、一個自動。

### 後端程式碼在哪裡？

```
backend/
├── routes/        → 定義「有哪些 API 網址可以用」（像目錄）
├── controllers/   → 處理「實際的功能邏輯」（像工人）
```

### 身份驗證的差別

今天簡報會用兩個例子來講解：

| 功能 | 需要的驗證 |
|------|-----------|
| Skill 技能管理 | 需要登入 |
| 教練新增課程 | 需要登入 ＋ 教練身份 |

---

## 測驗題目預覽 (共 10 題)

### CRUD 基本觀念 (4 題)

1. CRUD 中的「C」代表什麼功能？
2. 「查看會員列表」這個功能，屬於 CRUD 的哪一個？
3. 會員想要「修改自己的個人資料」，這是 CRUD 的哪一個功能？
4. 教練想要「刪除一堂已取消的課程」，這是 CRUD 的哪一個功能？

### 功能面 (2 題)

5. 「教練新增一堂新課程」這個功能，後端需要做什麼？
6. 為什麼「教練新增課程」這個功能需要先驗證身份？

### 後端結構 (2 題)

7. 後端的「routes」資料夾主要負責什麼？
8. 後端的「controllers」資料夾主要負責什麼？

### 身份驗證 (1 題)

9. 「Skill 技能管理」和「教練新增課程」這兩個功能，在身份驗證上有什麼差別？

### 串連前後章節 (1 題)

10. Day 7 學的 SQL 和今天學的後端 CRUD，有什麼關係？

---

## 遊戲連結

請進入遊戲完成本日關卡：

👉 **[點此進入遊戲](https://hexschool.github.io/backend-camp-game/)**

## 回報格式(確認打卡細節)

1. 完成遊戲中的測驗並截圖完成畫面
2. 到體驗營 Discord 的[每日活動頻道](https://discord.com/channels/801807326054055996/1446368763581562880)，找到當天任務的討論串
3. 在討論串留言貼上截圖，打卡儀表板會自動記錄你的成績
4. 分享一下此關卡有哪些知識點讓你印象深刻，甚至有透過 AI 服務延伸學習
![upload_99c2377e55a6020643596749c7ad0198](https://hackmd.io/_uploads/H1sYE81Ubg.png)

---

## 海克絲的叮嚀

> 「CRUD 是後端工程師每天都在做的事。記住兩個重點檔案位置：routes 定義 API 網址，controllers 處理功能邏輯。前任留下的義大利麵 Code，不用一次全看完，先從 CRUD 的角度去理解就好。」

---

## 重點整理

### 今天學到的概念

1. **CRUD** = Create（新增）、Read（讀取）、Update（更新）、Delete（刪除）
2. **routes** = 定義有哪些 API 網址可以用，像目錄
3. **controllers** = 處理實際的功能邏輯，像工人
4. **身份驗證** = 有些功能只需要登入，有些還需要特定身份（如教練）

### Day 7 與 Day 9 的關係

- **Day 7 SQL**：用 DBeaver 手動操作資料庫
- **Day 9 CRUD**：用後端程式自動執行同樣的事
- 兩種方式做的事情一樣，只是一個手動、一個自動
