前端经典面试题前后端分离(说一说你理解的前后端分离?)

shijianblog shijianblog     2023-04-08     252

关键词:

前言:昨晚面试遇到了这个问题,既然遇到了,找些资料来一起做个总结吧。

 

1.对前后端分离的误解
  在回答这个问题的时候不要钻到某个具体的技术 ,或者某个具体的框架上面→比如ajax异步请求、vue或react等组件化的开发框架、再或者rest接口规范、API接口数据约定等。从某个具体的技术切入来回答对前后端分离的理解本身就是一种局限的看法,所以在回答这个问题的时候应该从以下几个方面展开。

 

2.为什么要分离?
  在以往的很长一段时间里,后端开发才是开发团队里的核心,前端开发往往仅由一小撮人甚至交给后端人员兼任。比如JSP开发,大部分是前后端高耦合的,前后端代码放在一起写,各种繁琐的套模板。这种开发方式在以前互联网服务不那么繁荣,web化趋势还不那么明显的年代发挥着巨大作用。随着各种社会服务的信息化程度加深,前端需要展示的内容越来越复杂(比如淘宝页面),JSP这种套模板的技术(仅仅依靠html、css、js、jq等技术的堆积来完成一个复杂的页面展示也变得非常繁杂)再也无法高效的开发。究其本质原因:前端开发没有像后端开发那样实现工程化、模块化、可复用化的思想。所以就会出现前后端开发不协调、效率低、扯皮的问题,这很不利于项目开发。因此项目管理者就想办法来解决这种问题,如何解决?→解耦。在软件领域,任何复杂的问题面前,高内聚、低耦合这种原则几乎总是能见效。所以前后端分离开发出现了,把前端开发的责任从后端开发人员身上拿掉,给前端开发工程师一个单独的岗位和责任领域,将前端也工程化、模块化、项目化。这才是前后端分离开发最开始的来源。这些与vue、react框架没有什么关系,它们充其量只是一种具体实现方式而已。从本质上来看,前后端分离并不是一个技术问题,而是一个工程化考量和项目管理的问题。

 

3.什么是前后端分离?
  在学习前端开发的时候,会发现前端开发的知识非常琐碎,前端往往是靠东平西凑(面向复制粘贴变成)来试图完成页面效果,开发过程没有java后端开发有逻辑,代码也很难管理。后端开发有各种各样的工具类、jar包、maven依赖、spring框架等,具有工程化模块化思维,可以满足长期演进和迭代的目标。而前端那时候并没有,所以vue.js和react.js等这些前端框架的出现,它们从本质上打破了以前前端开发的游戏规则,这就是前端开发组件化框架(也叫前端开发工程化框架)。这些框架出现后,前端开发也开始像后端一样,遵循一套体系来进行约束性的开发,越来越工程化、组件化、迭代化,变得有章可循。前后端分离核心思想是前端HTML页面通过AJAX调用后端的RESTFUL API接口并使用JSON数据进行交互。

 

4.如何做到前后端分离?
  从软件开发的四大步说起:设计、开发、测试、部署,真正的前后端分离需要渗透到以上的每一步中。
第一阶段:设计阶段。设计阶段的第一个层面是系统设计,后端系统设计包括后端架构:数据库、中间件、缓存等架构的设计,主要是考虑性能、容量、扩展性、可维护性。前端也应该如此,尤其是当一个网站页面多、复杂的时候,前端架构就也需要做好充分的规划和准备,以满足长期可演进、可迭代的目标。设计阶段的第二个层面是接口设计,前后端交互是通过接口来实现的,所以model层面上的接口约定也就极其重要,包括:接口的请求方式、数据类型、返回数据格式等。接口设计一定要评审到位,避免前后端开发人员因为某个没有约定好的接口扯来扯去。
第二阶段:开发阶段。前后端开发人员按照先前约定好的接口独立开发,互相透明(一旦出现扯皮现象,那就不算是严格独立的前后端开发,因为必定会有一方需要被迫妥协,去修改代码,这就算是还未完全实现解耦)。前端开发用来测试的数据都是从mock中模拟出来的,并不是从后端拿的;而后端开发仅提供一套接口,按照先前提供的评审好的接口约定来提供数据,这一套接口可以提供给很多的前端使用,比如web网页、h5页面、app、微信小程序等。
第三阶段:测试阶段。要保证前后端独立可测试,前端测试包括:页面、跳转、展示、输入、传参、响应等;后端则包括:数据接口的提供、数据格式、校验、异常、数据一致性、权限问题等。
第四阶段:部署阶段。要保证前后端独立可部署。(JSP时代前端html页面、css样式、js效果等都是由后台驱动,即前端都是塞到后端中,然后项目部署。当前端人员需要修改、发版本的时候就需要去求着后端人员帮忙)。前后端分离之后,就不再这样了,前后端发布上线可以完全独立,互相透明。

5.不要盲目使用该技术
  前后端分离确实是很合适复杂项目。但是不能为了做前后端分离而做前后端分离。一个完全的前后端分离需要相当的人力成本、开发成本、工具成本、部署成本等。所以小项目小团队就不合适这种前后端开发,一旦某一点做的不彻底,它就会带来很多负担,所以并不是所有的项目都适合前后端分离。

关于前后端分离的理解

...mybatis等方式将jsp经过容器解释成servlet再画成html再返回给前端。此时响应返回的是整个页面。 当前后分离:java提供接口,前端通过跨域的 查看详情

前后端分离浅析

...为什么要分离?前后端怎么样分离的?前后端分离给我们前端技术人员的开发带来什么样的好处?下面我就带着这些问题,来简单谈谈我了解到的前后端分离情况。 在讲前后端分离之前,让我们先讲一讲什么是MVC?  MVC诞... 查看详情

你是如何看待前后端分离的?

首先看看前后端分离是什么?  “前端”通常指的是,相对来说更接近用户的一端,例如:APP,网页、桌面程序等,在现实开发中大部分情况可以理解为“客户端”;  “后端”相对来说就更泛化了,可以理解为是为前端提... 查看详情

前后端分离

...所有用到的展现的数据都是后端异步接口的方式提供的,前端只管展现。从某种意义来说。SPA确实做到了前后端分离,但这种方式存在两个问题:  WEB服务中。SPA类占用比例很少。很好情况下还有同步/ 查看详情

理解什么是前后端分离

 HTML、CSS、JS。AJAX或Fetch。学习一个前端的框架,React或者Vue或者Angularjs2都可以。学会一个前端的路由框架,如React-Router或者Vue-Router。在学会3的基础上你肯定已经搭建好前端的开发环境了,所有和后端的交互走AJAX或者Fetch。S... 查看详情

前后端分离方案以及技术选型

...js脚本,完成最终的页面展示。前后端分离后端只需要和前端约定好接收以及返回的数据格式(一般用JSON格式),向前端提供API接口。前端就可以通过HTTP请求调用API的方式进行交互。前端获取到数据后,进行页面组装、渲染,... 查看详情

前后端分离与不分离

前后端不分离   在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。    这种应用模式比较适合纯网... 查看详情

前后端分离与前后端不分离

前后端不分离  在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制的,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。  这种应用模式比较适合纯网页应用,但是当... 查看详情

为什么要进行前后端分离?

...二、为什么要进行前后端分离在以前传统的网站开发中,前端一般扮演的只是切图的工作,只是简单地将UI设计师提供的原型图实现成静态的HTML页面,而具体的页面交互逻辑,比如与后台的数据交互工作等,可能都是由后台的开... 查看详情

什么是前后端分离与前后端不分离

...在软件开发过程中前后端分工就叫做前后端分离,其实是前端所有用到的数据都是后端通过异步接口的方式提供的,前端只管页面的展示及效果。   前端和后端不分离的时候,前端的页面也是由后端控制渲染的,两者的耦... 查看详情

vue发布中的前后端分离和前后端不分离

前后端分离思路:前端和后台完全分离.前端提供静态的css和js,在运行时将css和js给后端,后端进行数据的请求(ajax)前后端分离就是前端和后台在不同的服务器上。基本是前端一个nginx加css和js后端nginx加index.html当用户访问的时候... 查看详情

前后端分离与前后端不分离的区别

...后端不分离   在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。    这种应用模式比较适合纯... 查看详情

前后端分离的好处有哪些?

...是前后端代码分离,一般后端人员主要开发API接口数据,前端人员根据API使得其数据能够在前端页面交互展示。在企业运营过程中,一个项目往往是多人或者多职来协作完成的,这就涉及到前端和后端,假如在项目代码没有前后... 查看详情

前后端分离及不分离

前后端不分离  在前后端不分离的应用模式中,前端页面看到的效果是由后端控制,由后端渲染页面或重定向,后端需要控制前端的展示,前端与后端的耦合度很,这种应用模式比较适合纯网页应用,但是当后端对接APP时,APP... 查看详情

对java前后端分离的理解

...a后端开发人员的我,在工作期间,无非就是ui设计页面,前端开发html,之后将做好的页面交给我,我负责后台逻辑一件html的页面渲染。好好滴一个后台开发人员,莫名其妙的做起了前端的活,很是心累啊。 一直不明白前后... 查看详情

前后端分离

...分离前后端分离前后端分离优势在前后端不分离模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。这种应用模式比较适合纯网页应用,但是当... 查看详情

浅谈前后端分离。

...的分界线。将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端。在前后端不分离的时代,在项目开发阶段,前端人员负责编写HTML页,后端人员负责写... 查看详情

关于前后端分离与不分离

...分离?  在前后端分离的应用模式中,后端只需要返回前端所需的数据,不用渲染HTML页面与效果。页面的展示与效果所需的数据,数据的加载方式,主要由前端决定。  核心思想是前端html页面通过ajax调用后端的restufulapi接... 查看详情