溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么

發(fā)布時間:2022-01-11 16:40:47 來源:億速云 閱讀:149 作者:iii 欄目:云計算

這篇文章主要講解了“Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么”吧!

研發(fā)架構的演進

接下來我們帶著這里兩個問題回顧前后端研發(fā)架構演進的歷史。

Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么

PC互聯(lián)網(wǎng)早期沒有還沒有前后端的概念,此階段單個業(yè)務需求通常一個開發(fā)人員可以完成研發(fā),前端網(wǎng)頁與后端邏輯都寫在一個工程中。隨著業(yè)務越來越復雜,原本開發(fā)者負責前后端研發(fā)已經(jīng)變得效率低下,此階段隨著移動互聯(lián)網(wǎng)的爆發(fā),服務端需要服務與PC、Android、iOS等多種前端。

服務端總是有一個疑問:服務端設計接口時,是應該面向 UI,還是應該面向通用服務?一個方案是抽取一部分服務端做 BFF(Backend For Frontend服務于前端的后端),作為前后端之間的適配層,核心是解決數(shù)據(jù)的聚合與編排,重新探索更合理的分層協(xié)作模式。

服務端寫B(tài)FF帶來新的問題,總是包接口無法提升個人能力。如果BFF由端側(cè)同學開發(fā)可以解決這個問題,具體技術方案也是接下來我們要思考的問題。

云端一體化技術方案

Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么

Serverless 由 BaaS(Backend as a Sevice)與 FaaS(Function as a Service)兩部分組成。BaaS 主要包括數(shù)據(jù)庫存儲、消息隊列等能力,針對復雜的需求建議由服務端在 BaaS 層封裝領域服務供 FaaS 層使用。作為端側(cè)開發(fā),核心關注客戶端與FaaS層的代碼開發(fā)。

目前公司 FaaS 環(huán)境已經(jīng)支持 Java、Kotlin、Swift、Dart、Node.js 等多種語言與框架,閑魚通過 Android(Flutter)、iOS(Flutter)、FaaS(Dart Runtime)都使用Dart 達到語言一體,并且實現(xiàn)協(xié)議一體與工程一體。

語言一體:Android、iOS、FaaS層使用 Dart 語言開發(fā),實現(xiàn)三端語言統(tǒng)一,有效屏蔽FaaS層語言學習成本。

協(xié)議一體:通過一體化框架屏蔽通信細節(jié),前后端同一份State,減少協(xié)議轉(zhuǎn)換,前端同學調(diào)用FaaS服務時,如同調(diào)用本地函數(shù)一樣簡潔。

工程一體:前后端可以在同一個工程中進行開發(fā),利用Dart特性可以通過Hot Reload機制進行快速開發(fā)聯(lián)調(diào)。

下單頁一體化實踐

下面以閑魚下單頁一體化為例,通過頁面渲染與交互兩部分展開一體化實踐過程。

Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么

下單渲染一體化

從上圖左側(cè)可以看出,客戶端渲染此頁面需要在端側(cè)請求5個接口,處理渲染接口之間的邏輯,把接口返回的Data轉(zhuǎn)為為ViewModel。經(jīng)過一體化改造之后,原有在端側(cè)的邏輯都移到FaaS層,包括聚合5個領域服務,處理業(yè)務邏輯,進行字段映射與頁面編排,端側(cè)無任何渲染與業(yè)務邏輯,直接獲取返回的ViewModel刷新頁面。以下是云端一體之后的流程圖。

Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么

下單頁交互操作一體化

從上圖右側(cè)可以看出,有4種操作都會改變實付款,原本這些操作處理邏輯都在端側(cè)處理,一體化改造之后,端側(cè)不存在任何計算邏輯,客戶端每次操作都會請求服務端,有FaaS進行紅包是否過期等數(shù)據(jù)校驗,再返回頁面數(shù)據(jù)進行刷新。

一體化研發(fā)框架

Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么

Nexus Framework:基于Flutter的一體化移動端UI框架。
Logic Engine:基于Flutter的一體化通信與調(diào)度框架。
Nexus Server:基于Dart Runtime的一體化服務端框架。

代碼示例

下圖為客戶端下單頁初始化的代碼示例:

Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么

下圖為FaaS層對客戶端發(fā)起的初始化請求的處理:

Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么

感謝各位的閱讀,以上就是“Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Flutter+FaaS雙端協(xié)議一體開發(fā)的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI