一、前后端分离的基本概念
前端后端交互,基本上是基于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,微信等其他不同平台进行产品二次开发。
网友评论