影片學習器:由單檔原型到可擴充模組化
先驗學習流程可行,再拆成可維護架構,確保新增影片時唔使每次改主程式。
實作以 JavaScript 模組化、manifest 配置同瀏覽器端參數驗證為核心,並可直接部署到 Cloudflare Pages 做版本管理。
起點問題(Before)
- 單檔版本快速但難長期維護。
- 播放模式(循環 / 自動暫停)互相衝突。
- 入口參數缺保護,狀態殘留風險高。
決策與做法(Why + How)
- 先模組化骨架:拆成 `index/watch/loader/app/videos/manifest`。
- 資料驅動:以 `window.STUDY_CONFIG` 管字幕與題材。
- 模式互斥:修正句尾接管衝突,避免播放邏輯互踩。
- 輸入保護:`?v=` 參數白名單驗證,非法值回導。
- 執行環境固定:本機伺服器測試,避免 `file://` 偶發失效。
結果對比(After)
維護成本下降
由一次性原型轉為可長期迭代結構。
擴充更快
新增影片只需更新 `videos/*.js` + manifest。
穩定度提升
模式切換與參數輸入更可控。
註:本案重點係工具結構與穩定性,未做完整使用者權限與雲端後台。
範圍與限制(Scope)
今次有做
- 播放器模組化重構
- 模式互斥與參數保護
- 本機運行與驗證流程
今次未做
- 帳號系統與進度雲端同步
- 商業化付費牆整合
- 後台內容編輯器
可複製條件
- 已有原型工具,但開始遇到擴充痛點。
- 內容更新頻率高,需要降低每次改版成本。
- 可接受先穩結構,再做商業功能。
你都有內容工具想由原型升級成可維護版本?
可先做最小模組化重構,保留既有成果同時提高擴充速度。
預約 30 分鐘診斷:幫你定邊啲值得自建、邊啲可以遲啲先換。