91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Flutter+FaaS雙端協議一體開發的方法是什么

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

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

研發架構的演進

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

Flutter+FaaS雙端協議一體開發的方法是什么

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

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

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

云端一體化技術方案

Flutter+FaaS雙端協議一體開發的方法是什么

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

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

語言一體:Android、iOS、FaaS層使用 Dart 語言開發,實現三端語言統一,有效屏蔽FaaS層語言學習成本。

協議一體:通過一體化框架屏蔽通信細節,前后端同一份State,減少協議轉換,前端同學調用FaaS服務時,如同調用本地函數一樣簡潔。

工程一體:前后端可以在同一個工程中進行開發,利用Dart特性可以通過Hot Reload機制進行快速開發聯調。

下單頁一體化實踐

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

Flutter+FaaS雙端協議一體開發的方法是什么

下單渲染一體化

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

Flutter+FaaS雙端協議一體開發的方法是什么

下單頁交互操作一體化

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

一體化研發框架

Flutter+FaaS雙端協議一體開發的方法是什么

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

代碼示例

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

Flutter+FaaS雙端協議一體開發的方法是什么

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

Flutter+FaaS雙端協議一體開發的方法是什么

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

向AI問一下細節

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

AI

公主岭市| 巨野县| 昌吉市| 德兴市| 兴宁市| 烟台市| 内江市| 津市市| 延寿县| 华阴市| 商河县| 渭源县| 宝丰县| 谢通门县| 铅山县| 宜兰县| 清新县| 军事| 太和县| 宜宾市| 专栏| 北安市| 阳新县| 太康县| 兴宁市| 颍上县| 乐安县| 拜泉县| 屏东市| 青河县| 阿合奇县| 南投市| 天柱县| 衡南县| 集安市| 垣曲县| 岑巩县| 凌源市| 柞水县| 颍上县| 彝良县|