前端開發 Roadmap
這是前端工程師的完整學習地圖。重點在紮根——框架會換,HTML/CSS/JS 和瀏覽器平台不會。
學習路徑
[基礎層]
HTML 語意 → CSS 佈局 → JS 核心 → 瀏覽器 API
↓
[抽象層]
TypeScript → React / Framework
↓
[架構層]
前端架構決策(渲染模式 / Micro-frontend / 架構風格)
↓
[應用層]
CH8 資料流(狀態管理 / API / 表單 / 版型)
CH9 效能與工程化(效能 / Bundler / 部署 / DX)
↓
[品質與跨切面]
測試 / 資安 / A11y / Mobile / Design System / 觀測
↓
[工具 DX 層]
DevTools 工程化 / AI 輔助前端
↓
[職涯與生態]
職涯面試 / 生態系
↓
[實作驅動]
walkthroughs/(無框架建站、造自己的工具、Level 1~5 專案)
跨領域連結:
- 工程師能力地圖 → 好的前端工程師
- SEO / AEO 完整 roadmap → SEO 系列
- 架構風格(MVC / MVVM / Flux / Redux 架構)→ architecture-patterns
- 好的前端專案體檢表 → 01
- 前端部署踩雷 → ops-notes O10
- 前端工程師需要的軟實力 → soft-skills
- 實作練習 → walkthroughs W01~W03
Stage:🌱 seed(待寫) / 🌿 growing(已有文章) / 🌳 mature(完整)
基礎層
F01 HTML 與語意化
HTML 已成系列 → 子 roadmap:html
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | HTML 結構 | HTML 結構 | 🌿 |
| 02 | 語意化標籤(article/nav/main/section/aside) | semantic | 🌿 |
| 03 | 表單原生行為(form / input / submit / validation) | forms | 🌿 |
| 04 | 表單進階(input types、autofill、file upload、accept) | — | 🌱 |
| 05 | 媒體(img / video / audio、lazy loading、srcset) | — | 🌱 |
| 06 | Canvas / SVG 繪圖 | — | 🌱 |
| 07 | Web Components / Shadow DOM | — | 🌱 |
| 08 | Drag & Drop / Clipboard API | — | 🌱 |
| 09 | i18n 屬性(lang / dir / hreflang) | — | 🌱 |
| 10 | Meta、OG、Structured Data | OG、Schema | 🌿 |
F02 CSS 與視覺呈現
CSS 已成系列 → 子 roadmap:css
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | Box Model | box-model | 🌿 |
| 02 | Flexbox(一維佈局) | flexbox | 🌿 |
| 03 | Grid(二維佈局) | grid | 🌿 |
| 04 | Positioning(static/relative/absolute/fixed/sticky) | positioning | 🌿 |
| 05 | Specificity & Cascade(為什麼樣式被蓋掉) | specificity | 🌿 |
| 06 | RWD 與 Media Query | rwd | 🌿 |
| 07 | Transition、Animation | — | 🌱 |
| 08 | CSS 變數與 Theming | — | 🌱 |
| 09 | 造自己的 Utility CSS(迷你 Tailwind) | — | 🌱 |
| 10 | Tailwind / CSS-in-JS / CSS Module 比較 | — | 🌱 |
F03 JavaScript 語言核心
JS 已成系列 → 子 roadmap:js
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | 變數、型別、let/const | variables | 🌿 |
| 02 | Scope 與 Closure | closure | 🌿 |
| 03 | this 綁定(call/apply/bind) | this-binding | 🌿 |
| 04 | Event Loop、microtask vs macrotask | event-loop | 🌿 |
| 05 | Promise、async/await 錯誤處理 | async | 🌿 |
| 06 | Prototype 與 class | prototype-class | 🌿 |
| 07 | Module(ESM / CJS) | — | 🌱 |
| 08 | Iterator / Generator | — | 🌱 |
F04 瀏覽器 API 與 Web 平台
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | DOM | DOM | 🌿 |
| 02 | BOM | BOM | 🌿 |
| 03 | 瀏覽器運作機制 | Browser Mechanism | 🌿 |
| 04 | 請求流程 | Browser Request Flow | 🌿 |
| 05 | Storage(Cookie / localStorage / IndexedDB) | — | 🌱 |
| 06 | Web Worker / Service Worker | — | 🌱 |
| 07 | WebSocket | WebSocket | 🌿 |
| 08 | Server-Sent Events | — | 🌱 |
| 09 | History API、URL | — | 🌱 |
抽象層
F05 TypeScript
TypeScript 已成系列 → 子 roadmap:typescript
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | 為什麼要用 TypeScript | why | 🌿 |
| 02 | 基本型別 | primitives | 🌿 |
| 03 | 實戰 Patterns(Utility Types) | 01 | 🌿 |
| 03-2 | 泛型與 Type Guard | 02 | 🌿 |
| 03-3 | Conditional / Mapped Types | 03 | 🌿 |
| 04 | 型別進階:Template Literal、Infer、Variance | — | 🌱 |
| 05 | 跟後端 contract 對齊(OpenAPI / Zod) | — | 🌱 |
F06 React 與 Framework
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | React 應用架構 | 01 | 🌿 |
| 02 | Custom Hooks、效能、專案結構 | 02 | 🌿 |
| 03 | React Hooks 基礎 | react-hooks | 🌿 |
| 04 | Framework 比較(Vue / Svelte / Solid / Qwik) | — | 🌱 |
| 05 | Meta-framework(Next / Nuxt / SvelteKit / Astro) | — | 🌱 |
前端框架擴充策略(新結構:frontend/framework/{name}/,跟後端對稱)
現有:frontend/typescript/(13 子題,5 🌿);frontend/react-architecture*.md 2 篇待搬入
預計觸發子目錄(詳見 CH6 framework ROADMAP):
| 優先度 | Framework | 子目錄 | 內容重點 |
|---|---|---|---|
| 🔴 | React | frontend/framework/react/ | Hooks 進階、Custom Hook patterns、效能、狀態、RSC、測試 |
| 🔴 | Next.js | frontend/framework/next/ | App Router、RSC、data fetching、deployment |
| 🟡 | Vue 3 | frontend/framework/vue/ | Composition API、reactivity、Pinia |
| 🟡 | Svelte 5 | frontend/framework/svelte/ | Runes、store、SvelteKit |
| 🟢 | Solid / Nuxt / Astro / Qwik / Tailwind | frontend/framework/{name}/ | 看需求觸發 |
選型文 vs 深入教學分工:
- F06-04/05(上面)= 選型比較文(1 篇/生態,SEO 流量大)
frontend/framework/{name}/= 深入教學(5~15 篇/框架)
優先順序:
- 🔴 React(既有 2 篇架構文待搬入;最熟;SEO 流量最大)
- 🔴 Next.js(2026 主流 Meta-framework)
- 🟡 Vue / Svelte
- 🟢 其他(等需求驅動)
架構層
F07 前端架構決策
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | 渲染策略總覽:CSR / SSR / SSG / ISR / RSC | 渲染策略 | 🌿 |
| 02 | 渲染決策框架:什麼場景選什麼 | rendering-decisions | 🌿 |
| 03 | Micro-frontend 架構 | — | 🌱 |
| 04 | Module Federation | — | 🌱 |
| 05 | 架構風格應用 | → common/foundations/architecture-patterns/ | 🌱 |
應用層・資料流(CH8)
詳細計畫 → ROADMAP.md(46 題,含 Dashboard / E-commerce / Admin / SaaS / Landing 五大萬用版型)
F08 狀態管理
| # | 主題 | stage |
|---|---|---|
| 01 | Context / useState 原生組合 | 🌱 |
| 02 | Redux / Zustand / Jotai tradeoff | 🌱 |
| 03 | TanStack Query:server state vs client state | 🌱 |
| 04 | 狀態機 XState | 🌱 |
F09 API 與通訊層
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | REST 基礎 | API Methods、RESTful | 🌿 |
| 02 | GraphQL | — | 🌱 |
| 03 | tRPC | — | 🌱 |
| 04 | WebSocket 實戰 | WebSocket | 🌿 |
| 05 | Server-Sent Events | — | 🌱 |
| 06 | API Client 架構(中介層 / retry / cache) | — | 🌱 |
| 07 | 錯誤處理策略(網路 / 業務 / UI 三層) | — | 🌱 |
| 08 | 前端認證處理(JWT / OAuth / Session) | OAuth | 🌿 |
| 09 | Mock & Contract Testing(MSW / Pact) | — | 🌱 |
| 10 | OpenAPI 自動生成 TS 型別 | — | 🌱 |
F10 表單與資料流
| # | 主題 | stage |
|---|---|---|
| 01 | Controlled vs Uncontrolled | 🌱 |
| 02 | React Hook Form + Zod | 🌱 |
| 03 | 複雜表單策略(多步、條件顯示、陣列欄位) | 🌱 |
應用層・效能與工程化(CH9)
詳細計畫 → ROADMAP.md(40 題,含 Core Web Vitals / Bundle / npm 發布 / Monorepo / 部署)
F11 前端效能
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | Core Web Vitals 與 Lighthouse | Lighthouse、CWV | 🌿 |
| 02 | Code Splitting、Lazy Loading | — | 🌱 |
| 03 | Memo、虛擬列表(virtualization) | — | 🌱 |
| 04 | 圖片優化(srcset / WebP / AVIF / lazy) | — | 🌱 |
| 05 | RUM 與 Web Vitals 回傳 | — | 🌱 |
F12 建置工具與工程化
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | 為什麼需要 Bundler | why-bundlers | 🌿 |
| 02 | npm 常用指令 | npm-commands | 🌿 |
| 03 | Webpack / Vite / Turbopack / esbuild / SWC | — | 🌱 |
| 04 | Monorepo vs Multi-repo | Monorepo | 🌿 |
| 05 | Package 發布到 npm | — | 🌱 |
F13 部署與 DX
| # | 主題 | stage |
|---|---|---|
| 01 | 環境變數分層(build-time vs runtime、.env 管理) | 🌱 |
| 02 | 部署平台(Vercel / Netlify / Cloudflare Pages / GitHub Pages) | 🌱 |
| 03 | Preview deployment 工作流 | 🌱 |
| 04 | CDN 與 Edge 運算 | 🌱 |
| 05 | 版本號、Cache Busting、Source Map 管理 | 🌱 |
| 06 | 前端 CI/CD 流程(→ management/engineering-process/ + common/quality/standards/06-good-cicd) | 🌱 |
品質與跨切面
F14 測試
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | 單元測試(Jest / Vitest) | Vitest | 🌿 |
| 02 | E2E(Playwright) | Playwright | 🌿 |
| 03 | Testing Library、MSW | — | 🌱 |
| 04 | 測試策略總覽 | Testing Strategy | 🌿 |
| 05 | TDD / BDD / SDD | SDD | 🌿 |
F15 資安
| # | 主題 | 連結 | stage |
|---|---|---|---|
| 01 | 前端資安總覽 | Web Security | 🌿 |
| 02 | XSS(儲存型 / 反射型 / DOM 型) | — | 🌱 |
| 03 | CSRF 與 SameSite Cookie | — | 🌱 |
| 04 | CSP(Content Security Policy) | — | 🌱 |
| 05 | Cookie 安全(Secure / HttpOnly / SameSite) | — | 🌱 |
| 06 | 依賴掃描(Dependabot / Snyk) | — | 🌱 |
F16 無障礙(A11y)
| # | 主題 | stage |
|---|---|---|
| 01 | ARIA 基礎 | 🌱 |
| 02 | 鍵盤導航與 focus 管理 | 🌱 |
| 03 | Screen reader 測試 | 🌱 |
| 04 | 顏色對比與視覺可及性 | 🌱 |
| 05 | Lighthouse A11y 稽核 | 🌱 |
F17 Mobile / Cross-platform
| # | 主題 | stage |
|---|---|---|
| 01 | Responsive vs Adaptive 設計 | 🌱 |
| 02 | PWA(Progressive Web App) | 🌱 |
| 03 | Electron / Tauri 桌面 | 🌱 |
| 04 | React Native 入口 | 🌱 |
| 05 | Flutter 入口 | 🌱 |
F18 DevTools 技能
| # | 主題 | stage |
|---|---|---|
| 01 | Chrome DevTools:Network tab 全面用法 | 🌱 |
| 02 | Performance 剖析 / FPS 分析 | 🌱 |
| 03 | Memory / Heap snapshot | 🌱 |
| 04 | React DevTools / Redux DevTools | 🌱 |
| 05 | Source map debugging | 🌱 |
F19 Design System(里程碑)
做出 Design System 通常代表前端能力走到成熟階段。涵蓋前面所有層的綜合應用。
| # | 主題 | stage |
|---|---|---|
| 01 | 元件 API 設計原則 | 🌱 |
| 02 | Design Token 與 Theming | 🌱 |
| 03 | Storybook 元件文件 | 🌱 |
| 04 | 打包、Tree Shaking、npm 發布 | 🌱 |
F20 觀測與錯誤追蹤
| # | 主題 | stage |
|---|---|---|
| 01 | Sentry 整合 | 🌱 |
| 02 | 前端 Log 策略 | 🌱 |
| 03 | RUM(Real User Monitoring) | 🌱 |
F21 SEO pointer
SEO 完整 roadmap 在 SEO 系列(12 篇)。前端工程師必看:
- Technical SEO — meta、canonical、sitemap
- OG 與社群分享 — 社群分享預覽
- Structured Content(Schema) — JSON-LD
- Core Web Vitals — 效能就是 SEO
實作練習(連到 walkthroughs/)
知識要靠練習才能真正吸收。以下練習完整走法會放在 walkthroughs/,每個 walkthrough 都會引用上面 F01~F20 的文章。
無框架建站系列
從零用 HTML/CSS/JS 做完整網站,知道沒框架時要自己解什麼問題。
- Landing page(純靜態)
- 加互動:表單驗證、Modal、Tab
- SPA 路由(History API)
- Reactive state(觀察者模式)
- Web Component 元件化
- 迷你 template engine
造自己的工具系列
造出來才懂框架在做什麼。
- 迷你 Tailwind(utility CSS 自動生成)
- 迷你 fetch client(攔截 / 快取 / 重試)
- 迷你 state store
- 迷你 test runner
- 迷你 bundler
- 迷你 React(Virtual DOM + Reconciliation)
Level 1~5 實作路徑
每一級做一個專案,做完才升級:
- Todo List — 元件、狀態、事件
- 個人部落格 SSR/SSG — 路由、SEO、Markdown(相關:01、SEO)
- 電商前台 — API 串接、購物車、表單驗證、RWD
- 管理後台 Dashboard — 權限、表格、圖表、WebSocket
- Design System — 元件設計、a11y、效能、打包發布
策展地圖
跨目錄相關內容(前端視角)
這個 roadmap 只列主題知識。當你要找前端相關的其他內容類型:
實作練習 → walkthroughs/
- W01 無框架建站(6 集)— 純 HTML/CSS/JS
- W02 造自己的工具(6 集)— 迷你 Tailwind / 迷你 React
- W03 Level 1~5(5 個專案)— Todo / 部落格 / 電商 / Dashboard / Design System
技術系統案例 → case-studies/
前端工程師會感興趣的:
- C01 社群/動態(Twitter Timeline、Instagram Feed)
- C02 影音串流(Netflix 前端)
- C06 電商(Shopify 前端)
商業系統分析 → case-studies/business/
前端要懂商業邏輯才做得好:
- B01 電商金流(狀態機影響 UI 設計)
- B02 SaaS 訂閱(升級/降級 UI)
- B03 會員忠誠度(UI 呈現優惠券疊加)
運維踩雷 → ops-notes/
- O10 前端部署坑(3 案例)— SPA base path / SSR healthcheck / .dockerignore
軟實力 → common/people/soft-skills/
前端工程師日常:
- SS01 歸納收斂(需求拆解:把模糊設計稿變成 ticket)
- SS02 跟設計師協作溝通
- SS04 書寫(PR description、spec)
- SS05 Code Review 互動
體檢清單 → common/quality/standards/
程式架構 → common/foundations/architecture-patterns/
- A04 MVC / MVVM(前端常用)
- A09 Microservices(配合 F07 Micro-frontend)
進度統計
- 主題群:21(F01~F21)+ 3 系列實作練習
- 總子題:約 127
- 🌿 growing:46
- 🌱 seed:79
- 🌳 mature:2
架構設計說明
本 roadmap 按五層架構組織,避免把知識主題跟練習主題混層:
| 層 | 內容 | 範圍 |
|---|---|---|
| 基礎層 | F01~F04 | HTML / CSS / JS / 瀏覽器平台 |
| 抽象層 | F05~F06 | 型別系統 / 框架 |
| 架構層 | F07 | 架構決策(渲染 / MFE / 風格) |
| 應用層・資料流 | F08~F10(CH8) | 狀態 / API / 表單 / 業務版型 |
| 應用層・工程化 | F11~F13(CH9) | 效能 / Bundler / 部署 / DX |
| 品質與跨切面 | F14 | 測試 / 資安 / A11y / Mobile / DS / 觀測 |
| 工具 DX 層 | F18 + AI(CH16~CH17) | DevTools / AI 輔助 |
| 職涯與生態 | CH18~CH19 | 職涯面試 / 生態系 |
| SEO pointer | F21 | 連到 common/tooling/seo/ 目錄 |
| 實作驅動 | walkthroughs/ | 不在知識層級,獨立放 |