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