鍍金池/ 問(wèn)答/室內(nèi)設(shè)計(jì)  HTML/ 提問(wèn):前后端分離的真正實(shí)現(xiàn)?

提問(wèn):前后端分離的真正實(shí)現(xiàn)?

1.不要說(shuō)什么ajax,那現(xiàn)在不是服務(wù)端渲染的客戶(hù)端都是前后端分離
2.不要說(shuō)什么 只通過(guò)json傳遞數(shù)據(jù),ajax不就是json的橋梁?
3.如果只是 restApi 接口的規(guī)范,實(shí)現(xiàn)前段后端并發(fā)開(kāi)發(fā),提高效率,那我白問(wèn)了
4.是否真正意義在于開(kāi)一個(gè)接口,可以廣泛用于多個(gè)頁(yè)面,一個(gè)頁(yè)面可以用于多個(gè)接口?

回答
編輯回答
喜歡你

先看你的問(wèn)題,ajax,json,頁(yè)面。
一個(gè)個(gè)來(lái)回答

  1. 前后端分離的本質(zhì)是前后端分離開(kāi)發(fā),幾乎無(wú)耦合,兩種通過(guò)接口文檔進(jìn)行對(duì)接,程序之前沒(méi)有依賴(lài),前段依賴(lài)于接口。
  2. json是語(yǔ)言無(wú)關(guān)的數(shù)據(jù)交換格式,ajax是網(wǎng)頁(yè)用來(lái)異步加載數(shù)據(jù)的操作,跟json并沒(méi)有必然的關(guān)系,如果你用xml或者純文本交換數(shù)據(jù),那就跟json真沒(méi)關(guān)系
  3. restapi的局限性太大,業(yè)務(wù)邏輯稍微復(fù)雜一點(diǎn),直接玩完
  4. 你的表述應(yīng)該是一套API,N個(gè)客戶(hù)端,寫(xiě)好接口文檔,保障文檔質(zhì)量。

舉個(gè)實(shí)際例子。

  1. 我現(xiàn)在有個(gè)微信端的webapp,vue+php前后端分離開(kāi)發(fā),JSON數(shù)據(jù)交換
  2. webapp用戶(hù)開(kāi)始大了,需要獨(dú)立開(kāi)發(fā)APP,后端這時(shí)候不用改業(yè)務(wù),頂多適配下APP第三方授權(quán)登錄,業(yè)務(wù)接口照舊,后端幾乎無(wú)開(kāi)發(fā)成本
  3. 我要做PC網(wǎng)頁(yè)端,與2同理
  4. 我要PC桌面端,與2同理

后端開(kāi)發(fā)成本只有一次

2018年9月8日 05:53
編輯回答
糖果果

前后端分離項(xiàng)目難點(diǎn)在于dom渲染、異步開(kāi)發(fā)、前后端協(xié)同調(diào)試。

異步開(kāi)發(fā),是執(zhí)行順序的問(wèn)題。

dom渲染一般采取前端渲染(如果后端渲染,前后端協(xié)調(diào)難度又會(huì)增加,除非 api 也是你寫(xiě)的),前端渲染如果僅通過(guò) jquery 通過(guò)原始的拼接 dom字符串的形式或節(jié)點(diǎn)操作形式,基本不可能完成,所以要選擇一個(gè)合適的前端框架,能幫你做 dom渲染這件事,目前比較火的就三種:vue、angular、react。我比較熟悉 vue,學(xué)習(xí)他,你將接觸到不亞于服務(wù)端語(yǔ)言的前端生態(tài)圈,上手需要較長(zhǎng)時(shí)間。

前后端協(xié)調(diào)僅出現(xiàn)在 api 開(kāi)發(fā)一組人員、前端開(kāi)發(fā)一組人員的情況下,前端做好界面,進(jìn)行數(shù)據(jù)對(duì)接的時(shí)候出現(xiàn)。

api 定義后好,是任何平臺(tái)都可使用的,你比如說(shuō)一個(gè)產(chǎn)品列表,pc端、android、ios都有,只要定義好這個(gè)產(chǎn)品列表api,不就可以供 pc端、android、ios 使用,數(shù)據(jù)完全一致。如果 pc 端是采取非前后端開(kāi)發(fā)的方式,那么在渲染模板之前,需要自己實(shí)現(xiàn)產(chǎn)品列表的服務(wù)端邏輯。

2017年5月19日 12:24