開發(fā)模式
- 確定需求(產(chǎn)品經(jīng)理/領(lǐng)導(dǎo)/客戶);
- UI 設(shè)計(jì)效果圖;
- 前后端約定接口文檔;
- 前后端并行開發(fā);
- 前后端集成;
- 需求交付(提測(cè)/上線);
前后端半分離
如圖,為前后端半分離。
分離與半分離的標(biāo)志在于誰握著組裝數(shù)據(jù)的邏輯,如果在前端,那就是前后端分離!否則就是半分離!
前后端分離
如圖,為前后端分離。
優(yōu)點(diǎn)
- 前后端徹底分離,即便后期有服務(wù)遷移,也不需改動(dòng)前端代碼;
- 更好的適配前端,業(yè)務(wù)更向前靠攏,在 BFF 層進(jìn)行接口組裝;
- 對(duì)于后端,確定了更清晰的服務(wù)邊界;
- 對(duì)于前端,可自行在 BFF 層 mock 數(shù)據(jù);
缺點(diǎn)
- 增加了開發(fā)成本;
- 中間層轉(zhuǎn)發(fā)增加請(qǐng)求延遲;
BFF 層大多數(shù)情況下歸屬于前端負(fù)責(zé),使用 nodejs開發(fā),完成請(qǐng)求轉(zhuǎn)發(fā)和數(shù)據(jù)轉(zhuǎn)化。
架構(gòu)圖參考:
反思
如果系統(tǒng)分層了,但是人的職責(zé)沒分層,那就違反了康威定律!如果只有三五個(gè)開發(fā),應(yīng)該考慮的不是服務(wù)拆分,而是服務(wù)聚合。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!