
一、前后端分離的基本概念
前端后端交互,基本上是基于http+json的形式。后端專注于提供數(shù)據(jù),更重要職責(zé)是維護(hù)系統(tǒng)架構(gòu)的穩(wěn)定,保證數(shù)據(jù)的安全。前端人員專注于交互,快速響應(yīng)UI的變化。
雙方交互基于http+json接口,后端人員基本只對(duì)接口負(fù)責(zé),無需負(fù)責(zé)js和html的代碼。前端人員只對(duì)界面展示交互負(fù)責(zé),對(duì)于后端http接口如何提供正確的數(shù)據(jù)無需負(fù)責(zé)。
二、實(shí)現(xiàn)分離的基本合作思路
1、評(píng)審階段:產(chǎn)品經(jīng)理與前后端進(jìn)行需求評(píng)審,各自理解清楚自己的業(yè)務(wù)量以及聯(lián)調(diào)的工作量,評(píng)估開發(fā)時(shí)間。
2、開發(fā)準(zhǔn)備階段:前后端一起商量需求中需要聯(lián)調(diào)的部分,進(jìn)行接口的口頭協(xié)議交流。
3、接口定義階段:前后端一方中,前后端中的一方根據(jù)之前的口頭協(xié)議擬定出一份詳細(xì)的接口,并編寫服務(wù)接口定義,完成后由另一方確認(rèn)。有疑問的地方重新商量直至雙方都沒有問題。
4、開發(fā)階段:雙方根據(jù)協(xié)商出來的接口為基礎(chǔ)進(jìn)行開發(fā),如在開發(fā)過程中發(fā)現(xiàn)需要新增或刪除一些字段,重復(fù)步驟3。
(注意:前端在開發(fā)過程中記得跟進(jìn)接口,mock數(shù)據(jù)進(jìn)行本地測(cè)試,后端修改接口需要跟前端協(xié)商清楚再改。 )
5、聯(lián)調(diào)階段:雙方獨(dú)自的工作完成,開始前后端聯(lián)調(diào),如在聯(lián)調(diào)過程發(fā)現(xiàn)有疑問,重復(fù)步驟3,直至聯(lián)調(diào)完成。
6、提測(cè)階段:將完成的需求提給測(cè)試人員,讓其對(duì)該需求進(jìn)行測(cè)試,如發(fā)現(xiàn)問題,及時(shí)通知開發(fā)并讓其修改,直至需求沒有bug。
7、發(fā)布階段:前后端雙方在保證步驟1-5都沒有問題了,進(jìn)行各自的代碼發(fā)布,完成后由測(cè)試人員在線上進(jìn)行相應(yīng)的測(cè)試,如果有bug,重復(fù)步驟6和7,直至成功上線。
三、相關(guān)問題及解決建議
1、前后端分離會(huì)帶來前后端溝通成本的問題,相比不分離,能減少開發(fā)的總時(shí)間嗎?
回答:能減少開發(fā)的總時(shí)間,理由如下:
(1)、基于對(duì)接口負(fù)責(zé)的原則,前后端分離后,只需做好各種熟悉領(lǐng)域的事情。
后端專注于提供數(shù)據(jù),更重要職責(zé)是維護(hù)系統(tǒng)架構(gòu)的穩(wěn)定,保證數(shù)據(jù)的安全。
前端人員專注于交互,快速響應(yīng)UI的變化。
(2)、前后端分離確實(shí)會(huì)帶來溝通成本的問題,這方面需要前后端遵守合作流程,適應(yīng)新的合作模式,可以提高溝通效率??傮w而言,利大于弊。
2、接口定義階段,接口誰定?
回答:建議后端開發(fā)人員定,需要前端人員評(píng)審。
3、聯(lián)調(diào)階段,前端是基于后端的開發(fā)人員的機(jī)器聯(lián)調(diào),還是基于后端一個(gè)開發(fā)公共環(huán)境聯(lián)調(diào)?
回答:前端應(yīng)該基于后端的一個(gè)公共開發(fā)環(huán)境聯(lián)調(diào),理由如下:
(1)、開發(fā)過程中,后端開發(fā)人員機(jī)器環(huán)境不穩(wěn)定,后端人員在調(diào)速中會(huì)時(shí)不時(shí)進(jìn)行斷點(diǎn)調(diào)試,重啟機(jī)器的服務(wù)器。
(2)、公共開發(fā)環(huán)境由開發(fā)人員負(fù)責(zé)更新程序,并需要在更新程序前把代碼提交代碼倉庫,這樣有利于前端有一個(gè)實(shí)時(shí)更新,穩(wěn)定的調(diào)試環(huán)境。
四、前后端分離工具推薦
1、RAP
http://rapapi.org/org/index.do
RAP是一個(gè)可視化接口管理工具,同時(shí)支持模擬數(shù)據(jù)功能,有開源代碼,工具基于BS架構(gòu)部署在web環(huán)境,瀏覽器頁面范圍。
基于RAP,可以在接口定義階段方便地共享接口協(xié)議。
2、insomnia
https://insomnia.rest/
insomoia是一個(gè)開源的http接口調(diào)試工具,exe程序,類型postman,支持接口報(bào)文數(shù)據(jù)導(dǎo)入導(dǎo)出。
基于insomnia,可以在開發(fā)階段,聯(lián)調(diào)階段,方便地測(cè)試,對(duì)接接口。
五、總結(jié)
前后端分離帶來的好處,在戰(zhàn)術(shù)級(jí)別:
提高開發(fā)效率,前后端各自做自己熟悉的領(lǐng)域的事情
在戰(zhàn)略級(jí)別:
1、有利于產(chǎn)品的組件化,由于前后端分離,有利于迅速二次開發(fā)推出新產(chǎn)品。
2、減少后端新人上手項(xiàng)目的難度,提高產(chǎn)品的可維護(hù)性和可拓展性。
3、基于原有后端接口,有利于后期在安卓,ios,微信等其他不同平臺(tái)進(jìn)行產(chǎn)品二次開發(fā)。