ref: https://blog.bitsrc.io/bff-pattern-backend-for-frontend-an-introduction-e4fa965128bf
本篇文章是探討一個前後端互相合作的設計模式,Backend For Frontend 簡稱為 BFF。
文章開頭,作者舉了一個常見的應用情境,假設團隊需要基於微服務的概念去設計一套電商系統,背後服務包括了購物車,訂單,產品,顧客...等不同類型的資料。
但是很容易後端所回傳的資料格式並不能完全直接符合前端的需求,這意味前端必須要維護一套邏輯來轉換資料格式來符合其需求。
基於這種情況,作者希望將前端這些轉換格式的邏輯給抽出來並且移動一個中間層來進行處理,而這個中間層也就是所謂的 BFF。
當前端需要請求一些資料時,前端會對 BFF 去發送 API,而此時 BFF 會執行下列行為
1. 呼叫對應的 backend 服務來獲得需要的資料
2. 根據前端的需求將獲得的資料進行格式轉換
3. 將轉換後的格式回傳前端
這種架構下,能夠讓前端的程式邏輯更為簡單與乾淨
接者作者針對 BFF 的架構又探討了幾個問題,分別
The role of a BFF
1. BFF 單純就是一個前後端中間的轉換介面
2. 前端 Team 要負責維護這個 BFF 的應用程式
3. 每個 BFF 就是針對一個前端,一個 UI 去設定,同時盡可能地讓前端程式碼保持單純與專注
Will this increase latency?
由於 BFF 就是一個前後端中間的轉換層,這是否意味所有請求都會需要花費更長的時間來處理,
答案是沒錯,每個請求只要經過愈多的節點整個花費時間會增加是不可避免的。
不過作者認為這個帶來的影響微乎其微,特別是當瀏覽器介面本身需要需要跟眾多沒有針對前端最佳化的服務取得資料時,BFF 帶來的影響基本上可以忽略。
此外,作者認為透過 BFF 的架構可以讓前端更容易得基於批次的概念來一口氣呼叫眾多後端服務同時於一個 reply 中取得全部所需的資料,甚至直接得更為方便呈現的資料格式。
作者提到這個特色針對 2G/3G 這種本身需要花上數秒鐘才可以建立連線的網路情況來說特別有效,減少向後建立連線的數量,反而能夠讓前端更有效率地去呈現畫面。
When to use a BFF for your applications
如同其他眾多的設計模式一樣, 使用 BFF 也是要依據團隊的使用情境與架構來判別。 假設團隊的應用程式是一個 monolithic 的架構,則 BFF 基本上幫不上什麼忙,帶來的好處微乎其微。
不過如果是基於微服務的架構的話,則 BFF 就有機會可以幫上忙。
文章中還有針對 BFF 的架構圖是以及其他相關好處,譬如
1. Separation of concerns
2. Easier to maintain and modify APIs
3. Better error handling in the frontend
4. Multiple device types can call the backend in parallel
5. Better security
6. Shared team ownership of components
有興趣的可以參考看看原文
購物車後端 在 小雯媽咪愛漂亮 Facebook 的最佳貼文
🔔 紐約Teamson Kids木製小廚房開團
➡ 團購表單:https://lihi1.com/2Itjv
➡ 雯章心得:https://yehyeah.com/teamson-kids/
小廚房真的可以讓小孩自己在那邊乖乖玩很久。大人只要等上菜假裝吃,小孩就超開心的。現在關在家裡,買小廚房絕對會讓爸媽輕鬆不少!廚房玩具是男生跟女生都適合玩,真的非常值得投資喔!
廚房玩具可以玩至少5~6年以上,當然要選擇無毒、耐用的。Teamson Kids是紐約品牌,熱銷20多個國家,得到許多國際品質認證。使用MDF環保木料,環保水性漆,安全無毒。一開箱也完全沒有異味。所有木板的邊角都有做磨邊處理。檯面邊角也有做圓弧設計,不怕小孩不小心碰撞受傷。Teamson Kids的小廚房多達十款,每次開團不一定全部都有喔!
✅ 艾芮兒是雙面設計。一面是娃娃屋,一面是小廚房,超特別。買一組等於買兩組!娃娃屋不是女生才愛玩喔,男寶雖然不喜歡玩洋娃娃,但可以用小玩偶代替,我們家雙寶還是玩得很開心喔!他們會在小廚房那面煮東西,然後端去飯廳給娃娃吃。還會幫娃娃洗澡、上廁所、睡覺。這組真的超級好玩!這組有附很多家具跟鍋具,不用三千元,真的CP值很高。
✅ 奧蘭多是我入手的第一個Teamson小廚房。冰箱下方有個飲水機,壓按鈕冰塊就會掉下來!有個小黑板可以在上面畫圖寫字,用絲滑蠟筆就可以畫,濕紙巾就可以擦乾靜。這組門片很多,裡面也可以收納玩具。我是自己去買IKEA木盒裝切菜玩具,超搭!
✅ 梅菲爾看起來就超高級!是白色櫃體+金色握把,連水龍頭、電話都是金色的。瓦斯爐有聲光效果,還有飲水機可以出冰塊。水龍頭、旋鈕都可以轉動喔!還有附兩個鍋鏟跟兩個鍋子。
這次還有✅仿真購物推車的跟✅正版Dyson吸塵器玩具。購物推車有小椅子可以拉開,可以讓娃娃坐在上面,還有一個掛鉤可以掛購物袋。吸塵器真的可以吸喔,只是吸力很弱。中間有彩色小珠珠會轉動,跟真的很像。有兩個替換吸頭。雙寶會用吸塵器幫娃娃屋吸地板😂
-----
配件:
✔ 艾芮兒:
娃娃屋配件:床*1、沙發*1、盆栽*1、桌*1、椅*2、浴缸*1、馬桶*1
小廚房配件:鍋鏟*2、平底鍋*1、鍋蓋*1、鍋子*1、調味罐*2
✔ 奧蘭多:杯子*1、白色冰塊*2、銀色電話*1
✔ 梅菲爾:杯子*1、透明冰塊*2、金色電話*1、平底鍋*1、鍋蓋*1、鍋子*1、塑膠鍋鏟*2、塑膠調味罐*2
----
🔺 小雯團購優惠:
馬德里:$1499
艾芮兒:$2999
梅菲爾:$3999
奧蘭多:$4050
Dyson吸塵器玩具:$950
購物車:$1600
烤麵包機組:$599
水果切切樂:$550
不鏽鋼仿真迷你廚具(11件組):$499
-----
➡ 團購表單:https://lihi1.com/2Itjv (6/6收單)
➡ 雯章心得:https://yehyeah.com/teamson-kids/
➡ 運費計算:免運
➡ 付款方式:刷卡
➡ 出貨日期:約1~3個工作天,不含例假日
➡ 客服資訊:line id:teamsontaiwan
----
加入後才不會漏掉開團訊息
▶️ 團購社團:https://reurl.cc/Kkr4Qm
購物車後端 在 加個零的社群觀察 Facebook 的最佳貼文
活動就是明天了,最後倒數 💕💕💕
去年某次集知活動,去聽 Yi-Chieh EJ Chiang、傑哥 陳思傑 (Szu-Chieh Jesse Chen) (Szu-Chieh Jesse Chen) 分享的時候,認識了 李明,也是我第一次聽關於網頁設計的講座,也才知道好多厲害的網站都是版塊設計做的。
以前對網站的想像就是購物車、資訊網站、品牌官網,但現在越來越多很豐富、很數位的網站出來,多了許多更有想像空間的互動跟說故事方式。
雖然工作較少接觸到網站,但我超喜歡看版塊社團「 網站趨勢收集 Web Trend Collection 」裡面分享來自全世界的網站趨勢,推薦大家加一下XD
以前常常被誤解的觀念網站設計=程式=工程師,但因為大家越來越重視 UI、UX,各項專業被拆分,光是程式就分為前端、後端,甚至是互動。
然後上個月去了 Hack/Hacker Taipei 的活動,聽 報導者 The Reporter 前端工程師的分享「新聞敘事網頁元件的模組化」,因應現在多媒體新聞專題的呈現趨勢,這些開源、模組化、可以重複使用的內容,更可以加速說好故事(聽聞紐時記者幾乎都有工程背景,平時也需要學怎麼用這些工具,工程師覺得這些簡單的記者端自己弄完就好😋😋)現場也玩了用手機就可以一鍵生成的元件,真心覺得太方便~~
總之這個活動想搓合大家更認識網站設計趨勢,這題目想想李明來講最適合不過了。每個月開發的非社群經營活動都還蠻受歡迎的,感動~~~🥰🥰