聊聊前后端分离
近年来,前后端分离很火,已成为互联网项目开发标准使用方式,新版春松客服的开发工作已经启动,在要不要前后端分离,以及为什么要采用前后端分离也是我们要考虑的问题,以下就前后端分离开发和部署这件事谈谈自己的看法
关于前后端分离的优点:
- 职责分离、分工明确,前端更多考虑交互、UI,后端更多考虑业务、数据流转
- 双方可以仅依据接口文档协作
- 前后端可以并行开发,前端可以不依赖后端的情况下完成所有的前端工作
- 遇到问题方便缩小范围,定位问题,通过请求接口可以确定是前端还是后端的问题
- 前端可以更简单的实现复杂的功能和效果
- 后端接口无法访问时,前端可以做“降级”处理,比如前端展示商城首首页
- 不需要对页面做静态化,就可以做到前后端分离部署,减少后端服务器的压力
关于前后端分离的缺点:
- 对前端的要求更高、前端工作量加大
- 对接口文档要求更高,多数接口文档可以使用工具生成
- 不利于SEO,但也有觖方案,如VUE的SSR(Server Side Render),前后端分离一般都是SPA应用,是在用户浏览器中将虚拟DOM渲染到html中,SSR的原理是将html在服务端渲染,合成完整的html 文件再输出到浏览器,以及NuxtJS。另外,Google和Bing可以很好地对同步JavaScript应用程序进行索引,即使是客户端渲染,只要是同步数据渲染(非 Ajax 获取数据,比如模板数据),搜索引擎也能抓取到相应的HTML片段
前后端分离涉及的其他问题:
- 测试
- 后端接口好测试,前端可以单独做mock测试
- (Selenium)自动化测试
- 为方便selenium操作DOM,开发需要给DOM添加id,data-name等属性
- 使用css或xpath选择器