重新學(xué)習(xí)web后端開發(fā)-005-了解前后端分離開發(fā)模式

005-01.jp

分離是為了以后更好的相聚辨绊。- 匿名

1. 什么是前后端分離

在作者早期參加工作時(shí)匹表,web項(xiàng)目開發(fā)基本上是程序員加美工的組合门坷,那個時(shí)候還沒有明確的前后端的說法宣鄙。一個web項(xiàng)目就像一道大雜燴默蚌,包括了界面和后端業(yè)務(wù)邏輯冻晤,同時(shí)前端的頁面由后端進(jìn)行渲染绸吸。

早期web項(xiàng)目結(jié)構(gòu)

隨著Ajax鼻弧,尤其是nodejs的發(fā)展,前端的能力大大增強(qiáng)攘轩,工程化也越來越成熟。很多之前需要后端去做的事情码俩,比如頁面的渲染度帮,前端已經(jīng)完全可以勝任稿存。并且前端也不僅僅局限于pc桌面笨篷,而是發(fā)展到移動端瓣履,tv等率翅。近年來,前后端分離開發(fā)逐漸流行開來冕臭,尤其是在互聯(lián)網(wǎng)方向,已經(jīng)成為了主流的web開發(fā)方式瓢棒。

前后端分離開發(fā)

2. 前后端分離的優(yōu)點(diǎn)

2.1 優(yōu)點(diǎn)一:分工明確

專業(yè)的人做專業(yè)的事情。前后端分離后脯宿,前端人員可以專注于UI界面的設(shè)計(jì)開發(fā)念颈,后端人員則可以專注于業(yè)務(wù)邏輯開發(fā)连霉,提供前端調(diào)用的API接口榴芳。

2.2 優(yōu)點(diǎn)二:解除耦合

將前端UI界面和后端服務(wù)數(shù)據(jù)分離,可以將后端服務(wù)接口獨(dú)立出來跺撼,服務(wù)于不同的前端UI,比如傳統(tǒng)PC桌面歉井,移動端H5柿祈,APP等,提高了后端服務(wù)的可復(fù)用性和可維護(hù)性躏嚎,同時(shí)也有利于向分布式微服務(wù)架構(gòu)進(jìn)行演變蜜自。

2.3 優(yōu)點(diǎn)三:提升效率

前后端未分離web開發(fā)模式如下圖:

前后端未分離web開發(fā)模式

我們可以看到卢佣,程序員要等待美工先導(dǎo)出html模板后重荠,再開始整合模板虚茶,渲染頁面戈鲁。程序員承擔(dān)了大部分的工作,包括頁面的二次處理(數(shù)據(jù)渲染婆殿、頁面整合等)以及后端業(yè)務(wù)邏輯的開發(fā)工作。

前后端分離后web開發(fā)模式

前后端人員可以同時(shí)進(jìn)行開發(fā),互不干擾。雙方遵循統(tǒng)一的規(guī)范(產(chǎn)品原型及API接口文檔)怨愤,各自進(jìn)行獨(dú)立的開發(fā),開發(fā)完成后進(jìn)行聯(lián)合測試(俗稱聯(lián)調(diào))癌压。

3. 前后端分離后產(chǎn)生的主要問題

3.1 溝通成本上升

前后端分離前,程序員承擔(dān)了大部分前端頁面渲染和后端業(yè)務(wù)邏輯的工作滩届,基本上沒有太多的溝通成本集侯。前后端分離后,前端需要承擔(dān)頁面設(shè)計(jì)和數(shù)據(jù)渲染的工作棠枉,數(shù)據(jù)需要通過調(diào)用后端提供的接口服務(wù)來獲取。這樣一來泡挺,統(tǒng)一的接口文檔就成為前端和后端的主要契約辈讶,隨著需求的調(diào)整以及項(xiàng)目的快速迭代娄猫,接口也會隨之出現(xiàn)變動贱除,這時(shí)雙方之間的溝通成本將大大增加媳溺。如果沒有良好的溝通機(jī)制和統(tǒng)一的接口文檔管理將會導(dǎo)致雙方扯皮月幌,互相推諉,影響產(chǎn)品周期和團(tuán)隊(duì)建設(shè)悬蔽。

那么如何解決這個問題呢?簡單來說就是:統(tǒng)一規(guī)范!也就是統(tǒng)一溝通機(jī)制以及接口文檔管理录语。主要有以下幾點(diǎn)建議:

  • 接口文檔由前后端中的一方進(jìn)行統(tǒng)一管理。另外一方必須根據(jù)接口文檔開展相應(yīng)的工作钦无。

    至于是由前端去管理還是后端去管理逗栽,可以綜合團(tuán)隊(duì)前后端人員的能力、業(yè)務(wù)理解程度等方面情況來決定彼宠。

  • 對接口文檔的變更操作,必須要先體現(xiàn)在接口文檔中弟塞,并通知到相應(yīng)人員凭峡。切記不要事后再去更改文檔决记!

  • 定期會議溝通摧冀,可集合團(tuán)隊(duì)具體的溝通機(jī)制進(jìn)行系宫。

  • 使用接口文檔管理系統(tǒng)索昂,對接口進(jìn)行統(tǒng)一的管理。同時(shí)很多接口文檔管理系統(tǒng)還會提供接口版本管理扩借、mock server,接口測試等功能潮罪。

    推薦使用YAPI接口管理系統(tǒng)康谆,可以為開發(fā)嫉到、產(chǎn)品沃暗、測試人員提供更優(yōu)雅的接口管理服務(wù)。具體使用詳見其官網(wǎng)孽锥。

3.2 前端模擬后端接口問題

前端需要有一個能夠模擬接口及其數(shù)據(jù)的服務(wù),這樣前端的開發(fā)進(jìn)度就不依賴于后端的開發(fā)進(jìn)度导而,雙方就可以根據(jù)統(tǒng)一的接口文檔各自開展工作忱叭,而統(tǒng)一的mock server就比不可少了今艺。上面推薦的YAPI接口管理系統(tǒng)韵丑,就可以提供相應(yīng)的mock功能。

這里需要注意一個問題撵彻,那就是mock server很難完全覆蓋到后端所有的接口業(yè)務(wù)邏輯钓株。這也是為什么需要聯(lián)調(diào)的原因。畢竟mock的環(huán)境與真實(shí)的環(huán)境還是存在一定的差異轴合。不過只要根據(jù)規(guī)范來做,可以大大提高聯(lián)調(diào)的效率碗短,節(jié)省時(shí)間受葛。

3.3 測試介入太晚偎谁,拉長產(chǎn)品周期

針對這個問題总滩,作者的經(jīng)驗(yàn)是只要接口文檔確定好巡雨,測試就可以根據(jù)接口文檔寫對于的接口測試用例了闰渔,同時(shí)還可以和一些接口測試自動化工具結(jié)合在一起,而不必等到聯(lián)調(diào)完成后才介入铐望。

總的來說,在互聯(lián)網(wǎng)正蛙、移動互聯(lián)網(wǎng)等大部分web相關(guān)方面督弓,可以優(yōu)先考慮采用前后端分離的方式進(jìn)行web項(xiàng)目的開發(fā)乒验。當(dāng)然咽筋,沒有任何的技術(shù)、框架或者方案是銀彈,能夠一招走天下蒜危,我們需要綜合考慮項(xiàng)目虱痕、團(tuán)隊(duì)、成本等多方面因素部翘,采用合適的方案。

4. 小結(jié)

本節(jié)主要介紹了前后端分離的基本概念响委、優(yōu)點(diǎn)、實(shí)踐中存在的問題以及對應(yīng)的解決思路和建議赘风。從下一節(jié)開始夹囚,我們將結(jié)合實(shí)際的案例開始一步一步的實(shí)戰(zhàn)探索web后端接口開發(fā)的過程及其細(xì)節(jié)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荸哟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鞍历,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件劣砍,死亡現(xiàn)場離奇詭異惧蛹,居然都是意外死亡刑枝,警方通過查閱死者的電腦和手機(jī)香嗓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門仅讽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陶缺,“玉大人,你說我怎么就攤上這事洁灵。” “怎么了徽千?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵苫费,是天一觀的道長双抽。 經(jīng)常有香客問我百框,道長,這世上最難降的妖魔是什么铐维? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮慎菲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘露该。我一直安慰自己睬棚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布抑党。 她就那樣靜靜地躺著,像睡著了一般撵摆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上台汇,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天苛骨,我揣著相機(jī)與錄音篱瞎,去河邊找鬼痒芝。 笑死俐筋,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的澄者。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼请琳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了俄精?” 一聲冷哼從身側(cè)響起询筏,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤竖慧,失蹤者是張志新(化名)和其女友劉穎嫌套,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體圾旨,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年砍的,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了痹筛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廓鞠。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡帚稠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出翁锡,到底是詐尸還是另有隱情,我是刑警寧澤夕土,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布瘟判,位于F島的核電站怨绣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拷获。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一匆瓜、第九天 我趴在偏房一處隱蔽的房頂上張望赢笨。 院中可真熱鬧未蝌,春花似錦茧妒、人聲如沸萧吠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梅忌,卻和暖如春狰腌,著一層夾襖步出監(jiān)牢的瞬間牧氮,已是汗流浹背琼腔。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留踱葛,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓剖毯,卻偏偏與公主長得像圾笨,于是被迫代替她去往敵國和親逊谋。 傳聞我的和親對象是個殘疾皇子擂达,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容

  • tags: 前后端分離 mock AJAX 工作流 前端 引入 mock(模擬): 是在項(xiàng)目測試中胶滋,對項(xiàng)目外部或不...
    CntChen閱讀 2,792評論 1 20
  • 姓名:岳沁 學(xué)號:17101223458 轉(zhuǎn)載自:https://juejin.im/entry/5a33290e...
    丘之心閱讀 477評論 0 1
  • 本文系轉(zhuǎn)載抄腔,原作者,普元理张,敖顯奇 轉(zhuǎn)載本文需保留此處版權(quán)聲明:本文版權(quán)屬于EAII企業(yè)架構(gòu)創(chuàng)新研究院(微信號:ea...
    普元云計(jì)算閱讀 4,973評論 8 96
  • 本文系轉(zhuǎn)載悟耘,原作者,普元织狐,敖顯奇 轉(zhuǎn)載本文需保留此處版權(quán)聲明:本文版權(quán)屬于EAII企業(yè)架構(gòu)創(chuàng)新研究院(微信號:ea...
    RThong閱讀 741評論 0 9
  • 我不知道什么叫叛逆筏勒,當(dāng)時(shí)的我腦子里沒有叛逆的概念。我對當(dāng)時(shí)叛逆的動機(jī)挺模糊的旺嬉,只記得我當(dāng)時(shí)做了什么事管行,說過什么話鹰服,...
    長長魚閱讀 385評論 0 2