在面试时被问到为什么要前后端分离时该怎么回答?


  • 1、前后端分离的原因

从本质上来看前后端分离本身并不是一个技术问题,而是一个工程化考量和项目管理的问题。在早些年的时候,Web化趋势还不是那么明显,JSP可以应付大多数的业务场景,但是随着整个社会信息化程度的加深,以及各种各样的服务都Web化以后,前端的页面开始变得复杂起来,JSP这种前后端高耦合的技术就不是那么的好用了。其本质的原因,是因为前端并没有像后端一样,工程化、模块化和可复用化的思维来做。所以项目管理者就开始对项目进行解耦。


  • 2、什么是解耦

解耦本身的概念是降低事务之间的耦合度,耦合度则是指事务与事务之间的关联性程度。在软件行业里,解耦往往代表着降低软件逻辑之间的依赖性,其中的代表就是spring的IOC。一般在软件行业看到解耦的概念,就可以认为是降低依赖性,使得整体的逻辑层次更加清晰这个概念。清晰的逻辑分层有助于代码工程的开发,对于程序员的自我修养以及代码的维护很有帮助。


  • 3、怎么做前后端分离

把前端开发工作从后端中分离出来,让前端开发工程化、组件化。那么该怎么做才算是优雅的前后端分离呢?在一个正常的软件开发周期中,简化的来讲应该分为四大步:设计、开发、测试和部署。而真正的前后端分离就应该渗透到这四个步骤中的每一个步骤中去。

  • 3.1、设计阶段

系统设计:

前端:做好充分的规划和准备,一定要满足长期可演进、可迭代的目标后端:后端架构、系统架构设计、数据库、中间件、缓存等等,主要考虑性能、容量、扩展性和可维护性

接口设计:

前后端定义好模型层面的接口约定,包括接口的请求方式、数据类型和数据的格式等等
  • 3.2、开发阶段:

前后端按照设计阶段定义好的接口独立开发,前端数据可以从事先规划好的mock服务器中获取,数据是完全模拟的,完全不需要依赖后端的接口。后端只需要把接口写好,按照之前的接口约定来提供数据即可

  • 3.3、测试阶段:

在测试阶段要保证前后端独立可测试,前端主要是页面、跳转、展示、输入、传参以及响应数据的展示等等。后端主要保证数据接口的提供,如数据格式、校验、异常情况、数据的一致性问题以及权限问题等等。

  • 3.4、系统部署阶段:

在部署阶段,前后端分离最重要的就是前后端项目独立可部署。


  • 4、前后端分离这么火的原因

前后端的分离解决了一个问题,那就是静态资源(页面)和动态资源(数据接口)的分离,以前的JSP因为是直接把数据嵌入页面的,导致页面资源也是动态的,这样子会导致服务器性能的下降。而在进行前后端分离之后,静态资源是进入到缓存当中,这样可以有效的降低服务器的负载,提升服务器性能。

为什么要进行前后端分离相关推荐

  1. 前后端分离必备工具:Swagger快速搞定(整合SpringBoot详细教程)

    本文根据狂神教学视屏同步所做笔记 目录 一.Swagger简介 1. 前后端分离 2. Swagger引入 二.SpringBoot集成Swagger 1. 新建springboot项目 2. 导入S ...

  2. 前后端分离nginx配置,同时解决跨域问题

    背景 现在,web开发的前后端分离技术越来越火爆,由于最近的公司官网使用了前后端分离的方案,这里就来记录一下前后端分离的项目部署.这里我们使用的前端框架是Vue.js,后台使用Laravel7提供数据 ...

  3. php增删改查前后端分离,前后端分离之前端增删改查

    初次接触前后端分离,现把前端一个例子放出来记录以下,不喜勿喷. html静态页面代码: 菜单管理平台数据... 菜单管理查询条件列表 菜单名称: 菜单父级: 菜单名称: 菜单级别: 菜单父级: 图片地 ...

  4. 前后端分离的接口规范是什么?

    前言 随着互联网的高速发展,前端页面的展示.交互体验越来越灵活.炫丽,响应体验也要求越来越高,后端服务的高并发.高可用.高性能.高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长的领域 ...

  5. 若依前后端分离如何写移动端接口_前后端分离实践的架构设计

    前后端分离的项目开发策略已经不是什么新鲜东西了,网上介绍这方面的文章非常多.我自己是在14年的时候接触到的,对这种开发策略一直爱不释手,不管新老项目都会首先用前后端分离的思维先去思考一番.从14年到现 ...

  6. Java项目:网上电商项目(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 一款基于Springboot+Vue的电商项目,前后端分离项目,前台后台都有,前台商品展示购买,购物车分类, ...

  7. Java项目:仿小米商城系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 基于vue + Springboot前后端分离项目精简版仿小米商城 系统,注册登录,首页展示,商品展示,商品 ...

  8. Java项目:前后端分离疫情防疫平台设计和实现(java+springmvc+VUE+node.js+mybatis+mysql+springboot+redis+jsp)

    源码获取:博客首页 "资源" 里下载! 主要技术:Java.springmvc.VUE.node.js.mybatis.mysql.tomcat.jquery.layui.boot ...

  9. elementui datetimepicker 移动端_在 Gitee 收获 2.5K Star,前后端分离的 RuoYi 它来了

    作为 2019 年 Gitee 上最受欢迎的开源项目,权限管理系统 RuoYi 已经在 Gitee 上获得了超过 11K 的 Star. 这次作者若依推出了基于 SpringBoot + Vue + ...

  10. 运维开发笔记整理-前后端分离

    运维开发笔记整理-前后端分离 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么要进行前后端分离 1>.pc, app, pad多端适应 2>.SPA开发式的流 ...

最新文章

  1. Spring利用JDBCTemplate实现批量插入和返回id
  2. mysql使用date_format格式化日期
  3. 若依(基于SpringBoot的权限管理系统)集成MobileIMSDK实现IM服务端的搭建
  4. 第一次接送宝贝去幼儿园
  5. 【C语言】while后接分号“ ;”的用法
  6. [OpenGL ES 03]3D变换:模型,视图,投影与Viewport
  7. DataTable转成List集合
  8. CCF 201412-1 门禁系统
  9. python读取matlab数据_两分钟搞定Python读取matlab的.mat数据
  10. 计算机四年级测试题目,小学四年级下册数学总复习测试题(人教版)
  11. 贺利坚老师汇编课程61笔记:操作显存数据即在屏幕上显示
  12. 一个自定义的C#数据库操作基础类 SqlHelper
  13. Atitit sumdoc ta index list atiitt 2008 diary 大事记v2 s222.docx Atiti. 2010---2016大事记 just world new
  14. 收集整理近700套微信朋友圈h5小游戏源码合集大放送
  15. origin中画1:1线
  16. 在中兴新支点操作系统玩换装游戏
  17. 阿兰图灵和冯诺依曼,谁才是可称得起计算机之父呢?
  18. Ubuntu安装N卡驱动
  19. steam++工具箱
  20. html把字母a显示为其asc码,HTML ASCII码

热门文章

  1. 2022年最新二手苹果手机价格表
  2. 一种圆面积公式的推导方法
  3. 第九天:操作符详解(一)与扫雷游戏
  4. 《数据清洗》第六章课后操作
  5. 使用SaltStack Returner将Salt作业信息接入Elasticsearch的实践(踩坑)
  6. 网络嗅探器(影音神探) 4.73
  7. windows下快速安装nginx并配置开机自启动的方法
  8. 逆腹式呼吸-用气发力气先行
  9. 像模拟人生的 java游戏下载_我的世界1.7.2模拟人生整合包
  10. shell 下 时间 的傻狍子