發展 ECharts 專案 的概念步驟
下面以中文(繁體)整理一套以你提供文件為基礎、實務可用的「發展 ECharts 專案 的概念步驟」以及「要留下的開發/維運紀錄項目」。內容融合你給的 ECharts 範例、官網快速上手、地圖與 geojson 處理、以及實作時常見的檢查點,便於直接放進 repo 或專案文件中。
一、專案啟動(目標與需求)
- 做什麼:
- 明確專案目的(要呈現哪些資料、給誰看、主要互動與 KPI),
- 確認是否需要地圖、即時資料或大量資料處理。
- 要記錄:
- 專案名稱、簡述與主要目的
- 使用者角色與需求(User stories)
- 成功標準 / KPI(例如載入時間 < 2s、互動延遲 < 100ms)
- 範圍(Scope / Out-of-scope)
- stakeholders(產品、後端、資料來源、設計)
二、資料來源與格式(重要)
- 做什麼:確認資料來源(靜態 JSON / geojson、API、資料庫、websocket)、格式與更新頻率。
- 要記錄:
- 資料來源與存取方式(API 路徑或檔案位置)
- 資料 schema(欄位、型別、單位)與範例資料片段(sample)
- 更新頻率與取得流程(cron、手動、webhook)
- 資料轉換流程(SHP→geojson、座標系、mapshaper 處理、壓縮 geojson 方法)
- 測試用 mock data
(參考:你提供文章提到 result 為 AJAX 從 Flask 取得;地圖可用 mapshaper 轉換與 ECharts 的壓縮 geojson 範例)
三、技術選型與環境建置
- 做什麼:決定 ECharts 引入方式(CDN / npm)、前端框架(Vue/React/純 JS)、是否用 echarts-leaflet 或 Leaflet/Mapbox、打包工具、Node 版本、CI/CD。
- 要記錄:
- 技術堆疊與版本(ECharts 版本、Framework 版本、node/npm/yarn)
- 安裝指令與主要依賴(如 npm install echarts –save、npm i echarts-leaflet)
- 專案結構(components, assets, data)
- 開發/測試/production 設定(env 變數、lint、prettier)
- Build / deploy 指令(CI 範本)
四、設計與原型(Option 與互動)
- 做什麼:用 ECharts 官網編輯器或設計工具做 Option 原型(配色、legend、tooltip、visualMap、響應式)。
- 要記錄:
- Option 範本(可貼上 JSON,包含 title/legend/xAxis/series 範例)
- 原型截圖或編輯器連結
- 互動規格(點擊、hover、縮放、圖層切換)
- 響應式呈現規則(小螢幕隱藏 legend 或改顯示)
五、實作步驟(由簡至繁)
建議流程:
- 建立最小可行 Demo:固定大小的 div、echarts.init + setOption 用靜態 sample data 跑通(參考官方快速上手)[^11]。
- 把 result 換成從後端抓到的資料(fetch / AJAX / websocket),撰寫 data mapping(將 API 回傳轉成 option 需要的陣列)。
- 加入互動(chart.on(‘click’, …))、必要的回呼(導頁或 request)。
- 若為地圖:處理 geojson 註冊(echarts.registerMap)或使用 echarts-leaflet 整合底圖與圖層[^30]。
- 優化:壓縮 geojson、lazy-load 大資料、使用 dataset/transform 減少 client-side 處理。
記錄項目:
- 主要程式碼樣板(init、setOption、data mapping 範例)
- 範例 API request/response(mock 與真實)
- 事件處理邏輯(click, mouseover)
- 已知限制與技術決策備註
六、測試與效能
- 做什麼:功能測試、跨瀏覽器、不同裝置、邊界資料、效能測試(首次載入、互動 FPS/延遲)。
- 要記錄:
- 測試清單(功能/壓力/可用性/跨瀏覽器)
- 測試結果(載入時間、記憶體、錯誤)
- Bug list 與修復紀錄
七、部署與監控
- 做什麼:把 build 部署到 production(含 static、API、CDN),設置監控、日誌與回滾流程。
- 要記錄:
- 部署流程(build、CI/CD 腳本)
- 部署版本、時間、release notes / changelog
- 回滾計畫
- 監控指標(錯誤率、API 成功率、載入時間)
八、文件與交接(必要文件)
必要文件項目
可放在 repo README / docs)
- README(專案目的、快速啟動、範例)
- 開發環境與安裝步驟(npm install、啟動指令)
- API 介面說明(request/response 範例)
- Option 範本(常用 chart option JSON)
- geojson / map 資料來源與處理流程(SHP→geojson、mapshaper 使用)
專案管理文件
- 測試清單與結果
- 部署與運維流程
- Changelog / Release notes
- 已知問題(Known issues)與 TODO/backlog
九、最佳實務(Checklist)
- 把密鑰與重要設定放 env 檔或 secrets,不硬編在程式碼內
- 用 Git 與 branching(feature/PR/review)
- 封裝成可重用 chart component(初始化、resize、setOption、unbind events)
- 大 geojson 先壓縮或只載入需要的層級(mapshaper,或 ECharts 的壓縮格式)[^37]
- 若需底圖或更進階地圖互動,考慮 echarts-leaflet 結合 tile layers 與圖層控制[^30]
十、最小且必要的紀錄(摘要)
- 專案目標與需求(Why / What)
- 資料來源與 schema(含 sample)
- 技術選型與版本(ECharts、Framework)
- 核心程式碼樣板(init + setOption 與 data mapping)
- 測試清單與結果
- 部署流程與版本紀錄
- 已知問題與待辦
- 重要資源連結(官方文檔、mapshaper、geojson 來源、echarts-leaflet 範例)