哈囉,各位邦友們!
今天是鐵人賽的最後一天,也是這系列的的完結篇。
我們把一個 Standalone、Signals、Zoneless 的 Angular 專案從無到有帶上線,也補齊了測試。
今天就在篇把這次的成果一次盤點。
今天要做什麼?
- 回顧每一週完成的核心任務
- 統整英雄管理系統目前具備的功能
- 根據專案現況,列出下一步可以延伸的進階學習主題
一、系列回顧
第一週:現代 Angular 基底(Day 1~Day 7)
- Day01~Day03 重新建立英雄之旅的動機與專案骨架:ng new啟動 Standalone 專案、熟悉imports、拆出 HeroBadge 子元件。
- Day04~Day05 以 @if、@for取代舊指令,搭配 signals 控制畫面與清單狀態,建立「宣告式模板 + 現代控制流」的寫作節奏。
- Day06~Day07 把事件處理、signal狀態與ngModel表單整合,完成第一個可互動的 Dashboard。
第二週:應用程式核心功能(Day 8~Day 18)
- Day08~Day12 建立 HeroService、串接 HttpClient 模擬 API,並用 Observable 處理 loading/error,正式把資料流搬離元件。
- Day13~Day15 打造完整 CRUD:新增/更新、刪除與錯誤處理,同步強化 UI 的 Loading、Empty、Error 狀態。
- Day16~Day18 練習 RxJS operators 的即時搜尋、整合 Dashboard 體驗與 NgOptimizedImage,確保互動順暢也顧到效能。
第三週:響應式進階篇(Day 19~Day 26)
- Day19~Day21 將 Reactive Forms 與 Signals 深度結合,完成英雄表單、表單驗證與服務快取策略。
- Day22~Day24 把 RxJS 與 Signals 交會點透過 toSignal、resource()、rxResource()收斂,並回顧從 NgModule 到 Standalone 的架構演進。
- Day25~Day26 引入 @defer延遲載入、整理週次重點成果,讓第二階段的進階技巧全部落地。
部署與上線(Day 27~Day 29)
- Day27 以 ng build+ GitHub Pages 實際部署,熟悉 baseHref、預渲染與自動化流程。
- Day28 探討 Zoneless 變更檢測,描述 Signals 如何成為沒有 Zone.js 的更新核心。
- Day29 撰寫 HeroService 與 HeroDetail 的單元測試、Playwright E2E 端對端測試。
二、專案現況盤點
- 架構:全站以 Standalone 元件 + provideRouter啟動,ApplicationConfig集中註冊路由、HTTP、Zoneless 與 SSR。
- 功能:Dashboard、Heroes 清單、詳細頁、即時搜尋、完整 CRUD、技能 FormArray、錯誤與 Loading 視覺狀態全部到位。
- 狀態管理:HeroService 使用 signals 快取 + computed Map,加上 rxResource()控制搜尋、effect同步路由與表單,使資料流保持單一事實來源。
- 效能:@defer延遲載入次要板塊、NgOptimizedImage 做圖像最佳化、Zoneless 確保高頻互動的更新精準。
- 部署:ng build、GitHub Pages、自動化 workflow 設定可直接複製到團隊專案。
- 測試:Jasmine/Karma 覆蓋服務與元件邏輯,Playwright 驗證核心操作流程,確保重構程式能正常執行。
三、上線後的持續優化清單
- 
資料來源升級:把 in-memory API 替換成真實後端或 REST/GraphQL 服務,延伸 Day12~Day14 的 HTTP 邏輯到完整認證與權限控管。
- 
觀測與守護:延續 Day27 部署成果,串接 GA4、Application Insights 或 Sentry,建立錯誤回報與使用者行為追蹤。
- 
測試矩陣擴充:在 Day29 的基礎上補上 HeroList元件互動測試、表單驗證案例,並導入 CI 執行 lint/test/e2e。
- 
TEAM READY:若要多人協作,可建立專案樣板、Storybook/Chromatic 作為設計溝通橋梁,並導入代碼規範(ESLint + Prettier)。
四、未來學習地圖建議
- 
進階狀態管理:延續 Signals 基礎,研究 signalStore、ComponentStore或整合 NgRx,應付大型專案資料一致性。
- 
SSR 與多入口部署:把 Day27 的 static 部署升級為 SSR(例如 Angular Universal + Cloudflare Pages),處理登入、SEO 與快取策略。
- 
微前端與設計系統:根據 Day24 所談 Standalone 架構,把專案拆成多個可重複使用的 libraries,組成 Design System。
- 
Web 性能深潛:針對 Day28 的 Zoneless 與 Day18 的最佳化,深入瀏覽器效能分析(Performance panel、Lighthouse、Web Vitals)。
完賽心得
正式結束了今年的 iThome 鐵人賽
把想法變成一個能部署上線、具備現代 Angular 技術堆疊的作品
從 Standalone、Signals、RxJS,到部署、Zoneless、測試
對於 Angular 我還有許多需要補足的地方
文章內很多地方都還能更加優化
非常感謝一路同行的邦友!
每天的瀏覽次數都是一個幫助我持續發文的動力
歡迎回饋心得到留言區,這系列我會維護到我覺得這是一個合格的作品為止
更多資訊可以查看我的Repo