# Day 10 - 十天總複習:準備接手任務 ## 劇情背景 第十天早上,海克絲一早就把你叫到會議室... 「下個月,LiveFit 要準備上線了。」海克絲表情嚴肅地說。 「在那之前,有一些開發需求跟功能測試,需要有人來處理。我想把這個任務交給你。」 你驚訝地問:「我...我可以嗎?我才剛進公司十天欸...」 「所以在交給你之前,我需要先確認一件事——確認你這十天學的東西,有沒有真的記起來。」 海克絲站起來說:「我準備了一份綜合測驗,涵蓋這十天所有的知識點。總共 30 題。如果你的程度沒問題,我就放心把任務交給你。」 ![praise](https://hackmd.io/_uploads/SyUmmvyU-x.png) --- ## 學習目標 - 複習 Day 1~9 所有知識點 - 驗證自己的學習成果 - 準備接手下個月的開發任務 --- ## 測驗題目預覽 (共 30 題) ### Day 1:需求分析 (3 題) 1. 使用者故事 (User Story) 的標準公式是什麼? 2. 「線稿圖 (Wireframe)」的主要用途是什麼? 3. 「泳道圖」中,每一條跑道代表什麼? ### Day 2:Git & GitHub (3 題) 4. Git 是什麼類型的工具? 5. 為什麼後端專案通常會設成 Private? 6. Clone 的作用是什麼? ### Day 3:Docker & 系統架構 (3 題) 7. 在系統架構中,「後端」的主要職責是什麼? 8. Docker 主要解決什麼問題? 9. LiveFit 專案啟動後會有幾個 Container? ### Day 4:靜態資源 vs 動態資料 (3 題) 10. 以下哪個屬於「靜態資源」? 11. 為什麼教練資料不適合當作「靜態資源」? 12. 在 Vue.js 專案中,靜態資源通常放在哪個資料夾? ### Day 5:API 觀念 (3 題) 13. 一般網址和 API 的主要差別是什麼? 14. 後端工程師被稱為「中央調度站」的原因是? 15. 當使用者在網站上購買課程,後端需要做什麼? ### Day 6:資料庫觀念 (3 題) 16. 「主鍵 (Primary Key)」的特性是什麼? 17. 「外來鍵 (Foreign Key)」的作用是什麼? 18. 為什麼要把資料「正規化」(拆成多張表)? ### Day 7:SQL 語法 (3 題) 19. SQL 的「查詢三兄弟」是哪三個關鍵字? 20. UPDATE 和 DELETE 一定要記得加什麼? 21. 用 DBeaver 操作資料庫和用後端程式操作,有什麼差別? ### Day 8:JWT & 身份驗證 (3 題) 22. HTTP 是「無狀態」的,這代表什麼意思? 23. 為什麼別人無法偽造你的 JWT? 24. JWT 的秘密金鑰(JWT_SECRET)應該放在哪裡? ### Day 9:CRUD 觀念 (3 題) 25. CRUD 分別代表什麼? 26. 後端的「routes」資料夾主要負責什麼? 27. 後端的「controllers」資料夾主要負責什麼? ### 綜合觀念 (3 題) 28. 在開發之前,為什麼要先做需求分析? 29. 「Skill 技能管理」和「教練新增課程」在身份驗證上有什麼差別? 30. 當你改東西之前,應該先問自己什麼問題? --- ## 遊戲連結 請進入遊戲完成本日關卡: 👉 **[點此進入遊戲](https://hexschool.github.io/backend-camp-game/)** ## 回報格式(確認打卡細節) 1. 完成遊戲中你完成的結局畫面截圖完成畫面 2. 到體驗營 Discord 的[每日活動頻道](https://discord.com/channels/801807326054055996/1446368763581562880),找到當天任務的討論串 3. 在討論串留言貼上截圖,打卡儀表板會自動記錄你的成績 4. 分享一下這十天的學習心得,以及印象最深刻的知識點 ![截圖 2026-01-22 下午4.53.02](https://hackmd.io/_uploads/Bka_Swy8Ze.png) --- ## 海克絲的叮嚀 > 「這十天,你從什麼都不懂的新人,成長為能理解後端架構的工程師。User Story、Git、Docker、API、資料庫、SQL、JWT、CRUD... 這些都是後端開發的基礎。等專案上線後,我們再來看看你的試用期表現。保持好奇心,持續學習,加油!」 --- ## 重點整理 ### 十天學習總覽 | 天數 | 主題 | 關鍵知識點 | |------|------|-----------| | Day 1 | 需求分析 | User Story、線稿圖、泳道圖 | | Day 2 | Git & GitHub | 版本控制、Clone、Public vs Private | | Day 3 | Docker | 前後端資料庫、Container、環境一致性 | | Day 4 | 靜態 vs 動態 | public 資料夾、資料庫儲存 | | Day 5 | API | JSON、第三方服務、中央調度站 | | Day 6 | 資料庫 | 主鍵、外來鍵、正規化 | | Day 7 | SQL | SELECT/FROM/WHERE、INSERT/UPDATE/DELETE | | Day 8 | JWT | 身份驗證、LocalStorage、.env | | Day 9 | CRUD | routes、controllers、身份驗證 | | Day 10 | 總複習 | 綜合測驗 30 題 | ### 後端工程師的核心能力 1. **需求分析** - 寫程式之前先搞懂需求 2. **版本控制** - Git 是工程師的基本功 3. **環境建置** - Docker 確保環境一致 4. **API 設計** - 整合前端、資料庫、第三方服務 5. **資料庫操作** - SQL 是跟資料庫溝通的語言 6. **身份驗證** - JWT 讓系統知道「是誰在操作」 7. **CRUD** - 90% 的後端程式碼都在做這些事