Electron - Design Context
Context - 將現有的前端專案包裝成桌面端應用
情境: 已有一個完整的前端專案,但由於一些特定需求(例如離線操作的能力),決定將其包裝成桌面端應用。本質上,這個應用仍是一個網頁應用,因此基本上不會有額外的桌面端互動需求,也不需要特別增強和操作系統的整合。
目的: 主要為了滿足離線存取與更佳的用戶體驗,但不需要深度的桌面端特性。
技術重點: 專注於如何將現有的 Web 應用以 Electron 進行包裝,保持與原生前端相同的開發流程,並且避免過多改動。
限制: 盡量維持輕量化,減少與桌面平台的耦合,僅利用 Electron 提供的框架和包裝功能。
Context - 基於前端技術開發桌面端應用
情境: 目標是開發桌面端應用,只是基於前端技術來實現。這意味著應用程式將包含一些桌面應用所特有的特性,例如系統通知、檔案系統操作、離線儲存等。
目的: 充分利用 Electron 提供的 API 來增強桌面應用的功能,使其可以提供超越單純網頁應用的體驗。
技術重點: 基於前端技術棧(如 Vue、React 等),但需要使用 Electron 來實現與桌面系統的交互,包括檔案存取、系統托盤等。
設計考量: 需要兼顧應用的桌面特性與前端開發的靈活性,保證兩者間的有效融合。
Context - Electron 與 前端技術 僅是實作細節
情境: 設計理念以業務需求為核心,Electron 以及前端技術只是達成目標的手段和細節。
業務為中心的設計: 設計時不局限於技術選型,而是先分析業務需求,再根據需求選擇最佳的技術方案。最終選擇的技術(Electron、前端技術)只是為了實現業務需求的手段。
基於 Clean Architecture: 使用乾淨架構來分離業務邏輯與實作細節,確保應用程式具有良好的可擴展性與可維護性。Electron 與前端技術被隔離在具體的實作層,任何一方都可以被替換而不影響業務邏輯。
技術重點: 強調框架的選擇與使用不應該影響到核心業務邏輯,業務邏輯應獨立於 UI、技術框架的變更,專注於系統的彈性與維護性。