# Day 9 - CRUD 入門:後端工程師的日常 ## 劇情背景 你正盯著螢幕上前任工程師留下的程式碼,看著 routes、controllers、entities 這些資料夾發呆... 海克絲走過來:「在研究前任的 Code 嗎?」 你嚇一跳:「是的,但...看不太懂...」 海克絲笑著拉過一張椅子:「來,我陪你一起看。不過在看這坨義大利麵之前,我想先問你一個問題——你知道什麼是 CRUD 嗎?」  --- ## 學習目標 - 理解 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 服務延伸學習  --- ## 海克絲的叮嚀 > 「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**:用後端程式自動執行同樣的事 - 兩種方式做的事情一樣,只是一個手動、一個自動
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up