最近在公司項目組內部沙龍的時候,提出一個"弱后端強前端"的概念,其實已經在項目內部新的服務有做試點,我們整個SaaS系統,后端主要是JAVA構建,前端是Angular構建。"弱后端強前端"的思想,就是把放在服務器端的業務運算,轉移到客戶端來做,可以節省服務器端資源,同時服務器端可以將精力集中到提升快速響應上。
我這邊也將我們項目組討論的問題匯總出來,也歡迎大家來討論
問題1:
某些邏輯丟到客戶端去做會影響用戶體驗(例如導致瀏覽器卡頓或者卡死)那就得不償失,用戶體驗第一。
1.1 如果搬到前端的業務計算,涉及了頻繁DOM操作,可能會影響到用戶體驗
1.2 如果搬到前端的業務計算,涉及了頻繁調用API,可能會影響到用戶體驗
問題2:
用戶的硬件配置是不可預知,而服務器的配置是可以預期的
問題3:
前端JavaScript和TypeScript計算精度的問題
問題4:
放在前端計算 - 高頻的簡易計算
放在后端計算 - 復雜、需要精准或計算有一定保密性的數據,例如涉及到財務、需要隱藏的算法
上面這種划分准確嗎?有沒有遺漏?
問題5:
SaaS系統內將計算能力搬到前端,需要注意保持項目內的一致性,好不好統一來管理。同類數據/邏輯,比如不能說一些地方服務器端跑,一些地方又客戶端跑。
上面匯總的問題都屬於開放性的問題,歡迎大家留言和補充新問題~