简述对前后端分离的工作模式的认识

简述对前后端分离的工作模式的认识


一、前后端分离的基本概念

      前端后端交互,基本上是基于http+json的形式。后端人员专注于提供数据,更重要职责是维护系统架构的稳定,保证数据的安全。前端人员专注于交互,快速响应UI的变化。

      双方交互基于http+json接口,后端人员基本只对接口负责,无需负责js和html的代码。前端人员只对界面的展示与交互负责,对于后端http接口如何提供正确的数据无需负责。

      前后端分离的核心就是:后台提供数据,前端负责显示。

二、前后端分离的意义

  1. 彻底解放前端:前端不再需要向后台提供模板或是后台在前端html中嵌入后台代码。
  2. 提高工作效率,分工更加明确:前后端分离的工作流程可以使前端只关注前端的事,后台只关心后台的活,两者开发可以同时进行,在后台还没有时间提供接口的时候,前端可以先将数据写死或者调用本地的json文件即可,页面的增加和路由的修改也不必再去麻烦后台,开发更加灵活。
  3. 局部性能提升:通过前端路由的配置,我们可以实现页面的按需加载,无需一开始加载首页便加载网站的所有的资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。
  4. 降低维护成本:通过目前主流的前端MVC框架,我们可以非常快速的定位及发现问题的所在,客户端的问题不再需要后台人员参与及调试,代码重构及可维护性增强。
  5. 有利于产品的组件化:由于前后端分离,有利于迅速二次开发推出新产品。
  6. 减少后端新人上手项目的难度,提高产品的可维护性和可拓展性。
  7. 基于原有后端接口,有利于后期在安卓,ios,微信等其他不同平台进行产品二次开发。

三、前后端分离的基本合作思路

  1. 评审阶段:产品经理与前后端进行需求评审,各自理解清楚自己的业务量以及联调的工作量,评估开发时间。
  2. 开发准备阶段:前后端一起商量需求中需要联调的部分,进行接口的口头协议交流。
  3. 接口定义阶段:前后端中的一方根据之前的口头协议拟定出一份详细的接口,并编写服务接口定义,完成后由另一方确认。有疑问的地方重新商量直至双方都没有问题。
  4. 开发阶段:双方根据协商出来的接口为基础进行开发,如在开发过程中发现需要新增或删除一些字段,重复步骤3。(注意:前端在开发过程中记得跟进接口,mock数据进行本地测试,后端修改接口需要跟前端协商清楚再改。 )
  5. 联调阶段:双方独自的工作完成,开始前后端联调,如在联调过程发现有疑问,重复步骤3,直至联调完成。
  6. 提测阶段:将完成的需求提给测试人员,让其对该需求进行测试,如发现问题,及时通知开发并让其修改,直至需求没有bug。
  7. 发布阶段:前后端双方在保证步骤1-5都没有问题了,进行各自的代码发布,完成后由测试人员在线上进行相应的测试,如果有bug,重复步骤6和7,直至成功上线。

四、前后端分离的相关问题及解决建议

4.1 前后端分离会带来前后端沟通成本的问题,相比不分离,能减少开发的总时间吗?
回答: 能减少开发的总时间,理由如下:

  1. 基于对接口负责的原则,前后端分离后,只需做好各种熟悉领域的事情。
    后端专注于提供数据,更重要职责是维护系统架构的稳定,保证数据的安全。
    前端人员专注于交互,快速响应UI的变化。
  2. 前后端分离确实会带来沟通成本的问题,这方面需要前后端遵守合作流程,适应新的合作模式,可以提高沟通效率。总体而言,利大于弊。

4.2 接口定义阶段,接口谁定?
回答: 建议后端开发人员定,需要前端人员评审。

4.3 联调阶段,前端是基于后端的开发人员的机器联调,还是基于后端一个开发公共环境联调?
回答: 前端应该基于后端的一个公共开发环境联调,理由如下:

  1. 开发过程中,后端开发人员机器环境不稳定,后端人员在调速中会时不时进行断点调试,重启机器的服务器。
  2. 公共开发环境由开发人员负责更新程序,并需要在更新程序前把代码提交代码仓库,这样有利于前端有一个实时更新,稳定的调试环境。

参考:

  1. https://mp.weixin.qq.com/s/6xt_lk1aY9OYY6S1Uni6Rg
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页