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
有興趣的可以參考看看原文
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「frontend backend分別」的推薦目錄:
- 關於frontend backend分別 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
- 關於frontend backend分別 在 安娜到處走 Facebook 的最佳貼文
- 關於frontend backend分別 在 コバにゃんチャンネル Youtube 的最讚貼文
- 關於frontend backend分別 在 大象中醫 Youtube 的最佳貼文
- 關於frontend backend分別 在 大象中醫 Youtube 的最佳貼文
- 關於frontend backend分別 在 Re: 請問通訊系統的front end 和back end分別是指? 的評價
- 關於frontend backend分別 在 什麼是前端?後端?全端?軟體工程師該走哪端好?【電腦說人 ... 的評價
- 關於frontend backend分別 在 Front-End Developers Taiwan | 【 #徵才Frontend / Backend ... 的評價
- 關於frontend backend分別 在 [徵才] Senior frontend/backend engineer - PTT看板soft_job - 干饭人 的評價
- 關於frontend backend分別 在 [徵才] Senior frontend/backend engineer - 看板Soft_Job - PTT網頁版 的評價
- 關於frontend backend分別 在 [徵才] Senior frontend/backend engineer - 看板Soft_Job | PTT職涯區 的評價
- 關於frontend backend分別 在 [徵才] Senior frontend/backend engineer - Mo PTT 鄉公所 的評價
- 關於frontend backend分別 在 web前端有哪種– 前端工程師ptt - Kolot 的評價
frontend backend分別 在 安娜到處走 Facebook 的最佳貼文
分享Coursera綫上課程經驗
今年9月,我報名了Coursera的綫上課程學習新知識。Coursera是一個網路教學平臺。它的的課程來自世界各地的大學。只要完成課程,並在課程中拿到及格以上的成績,就可以拿到證書,Coursera的證書是可以放到自己的LinkedIn履歷中的。
許多課程都會提供7天免費試上,之後會每個月收取41歐訂閲費。如果你不需要證書的話,也是有免費旁聽 (Audit) 的選擇。如果你想要拿證書,但是經濟狀況比較不能負擔課程的話,也可以申請助學金 (Financial Aid)。
我選擇的課程是由加州藝術學院 (California Institute of the Arts) 開設的UI/UX Design Specialization 專業課程。專有名詞翻譯:
User Interface: 使用者界面設計
User Experience: 使用者體驗
整個專業中有4堂課,每堂課預計需要的完成時間是4周,4堂課的課題分別是:
Visual Elements of User Interface Design
UX Design Fundamentals
Web Design: Strategy and Information Architecture
Web Design: Wireframes to Prototypes
這堂課除了偶爾有一些選擇題的小測之外,還有討論題和大型作業。選擇題是自動改分,討論題不列入計分,而大型作業中的批改是同學之間互相批改。每一個作業都會被2-3個同學批改評論,而自己交完作業後,也必須要批改評論3個同學的作業。
下面是我自己上完整個UI/UX設計專業後,對整個課程的優缺點的想法:
優點
-沒有地點,時間限制(但是作業有deadline)
-可以跟著自己的進度上課,每天花越多時間,
則完成課程的天數越短,錢花的越少
-可以隨時停下來做筆記
-可以隨時回去課堂内容復習
-可以在改同學的作業中學習好的作品
缺點
-不懂時無法問老師,要自己上網查
-沒有同學互相激勵
-動力不夠的話上課速度會比較慢
-很多同學都想快點完成任務,沒有認真改作業,給評論
-作業有被抄襲的可能(我曾經在回頭查看之前課程的其他同學的作業時看到自己的設計,但因爲只是一小部分,不是大部分或整個作業的抄襲,所以我沒有舉報)
學完整個專業課程後,我無疑是對UI/UX設計有更多的認識,我也打算繼續往這個方向深造。目前我也在學習編程,從做項目中學習,並持續找主題做UI/UX設計練習。如果有也是想瞭解UI/UX設計的朋友,歡迎相認,一起學習,一起進步。如果有已經在這個領域就業的前輩,我也很希望可以跟你們交流,從中學習經驗!
#安娜到處走 #annagoesaround #德國 #德國日常 #德國生活 #台灣人在德國 #埃森 #Essen #NRW #germany #germanylife #deutschland #Coursera #綫上課程 #UIUX #UIUXDesign #UIUX設計 #UserInterfaceDesign #WebDesign #webdevelopment #frontend #backend #安娜談經驗
frontend backend分別 在 コバにゃんチャンネル Youtube 的最讚貼文
frontend backend分別 在 大象中醫 Youtube 的最佳貼文
frontend backend分別 在 大象中醫 Youtube 的最佳貼文
frontend backend分別 在 Front-End Developers Taiwan | 【 #徵才Frontend / Backend ... 的必吃
徵才Frontend / Backend Developer 】 Hi, 各位好~我們是區塊鏈媒體《動區動 ... 我跟我朋友之前分別是Facebook的資深軟體工程師和Linkedin的資深產品經理。 ... <看更多>
frontend backend分別 在 Re: 請問通訊系統的front end 和back end分別是指? 的必吃
※ 引述《ikjhyu (還沒想到)》之銘言:
: 好像是蠻白癡的問題..
: 小弟不是學通訊 只是大概知道 所以想問問
: 請問通訊系統的front end 和back end是指那個部分?
: 和chip design上所指的是不是有不同?
: 後者的back end好像又有人是指 layout
就通訊來說 一般front end ---> RF到IF 這一段
back end ----> 指BB這一段到任何interface(BB-->BASEBAND)
可是如果以一個目前DTV的整個接收到lcd撥出來的路徑來說
我們會說
RF+Demodulator 這二個部份是 front end
MPEG-2 + LCD driver +..... 這幾個部份是back end
那以一般的 IC design flow(digital design)
一般front end 是指 RTL coding --> synthesis 部份
back end 是指 apr-->layout 部份
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.186.73
... <看更多>