为什么要进行前后端分离
在面试时被问到为什么要前后端分离时该怎么回答?
- 1、前后端分离的原因
从本质上来看前后端分离本身并不是一个技术问题,而是一个工程化考量和项目管理的问题。在早些年的时候,Web化趋势还不是那么明显,JSP可以应付大多数的业务场景,但是随着整个社会信息化程度的加深,以及各种各样的服务都Web化以后,前端的页面开始变得复杂起来,JSP这种前后端高耦合的技术就不是那么的好用了。其本质的原因,是因为前端并没有像后端一样,工程化、模块化和可复用化的思维来做。所以项目管理者就开始对项目进行解耦。
- 2、什么是解耦
解耦本身的概念是降低事务之间的耦合度,耦合度则是指事务与事务之间的关联性程度。在软件行业里,解耦往往代表着降低软件逻辑之间的依赖性,其中的代表就是spring的IOC。一般在软件行业看到解耦的概念,就可以认为是降低依赖性,使得整体的逻辑层次更加清晰这个概念。清晰的逻辑分层有助于代码工程的开发,对于程序员的自我修养以及代码的维护很有帮助。
- 3、怎么做前后端分离
把前端开发工作从后端中分离出来,让前端开发工程化、组件化。那么该怎么做才算是优雅的前后端分离呢?在一个正常的软件开发周期中,简化的来讲应该分为四大步:设计、开发、测试和部署。而真正的前后端分离就应该渗透到这四个步骤中的每一个步骤中去。
- 3.1、设计阶段
系统设计:
前端:做好充分的规划和准备,一定要满足长期可演进、可迭代的目标后端:后端架构、系统架构设计、数据库、中间件、缓存等等,主要考虑性能、容量、扩展性和可维护性
接口设计:
前后端定义好模型层面的接口约定,包括接口的请求方式、数据类型和数据的格式等等
- 3.2、开发阶段:
前后端按照设计阶段定义好的接口独立开发,前端数据可以从事先规划好的mock服务器中获取,数据是完全模拟的,完全不需要依赖后端的接口。后端只需要把接口写好,按照之前的接口约定来提供数据即可
- 3.3、测试阶段:
在测试阶段要保证前后端独立可测试,前端主要是页面、跳转、展示、输入、传参以及响应数据的展示等等。后端主要保证数据接口的提供,如数据格式、校验、异常情况、数据的一致性问题以及权限问题等等。
- 3.4、系统部署阶段:
在部署阶段,前后端分离最重要的就是前后端项目独立可部署。
- 4、前后端分离这么火的原因
前后端的分离解决了一个问题,那就是静态资源(页面)和动态资源(数据接口)的分离,以前的JSP因为是直接把数据嵌入页面的,导致页面资源也是动态的,这样子会导致服务器性能的下降。而在进行前后端分离之后,静态资源是进入到缓存当中,这样可以有效的降低服务器的负载,提升服务器性能。
为什么要进行前后端分离相关推荐
- 前后端分离必备工具:Swagger快速搞定(整合SpringBoot详细教程)
本文根据狂神教学视屏同步所做笔记 目录 一.Swagger简介 1. 前后端分离 2. Swagger引入 二.SpringBoot集成Swagger 1. 新建springboot项目 2. 导入S ...
- 前后端分离nginx配置,同时解决跨域问题
背景 现在,web开发的前后端分离技术越来越火爆,由于最近的公司官网使用了前后端分离的方案,这里就来记录一下前后端分离的项目部署.这里我们使用的前端框架是Vue.js,后台使用Laravel7提供数据 ...
- php增删改查前后端分离,前后端分离之前端增删改查
初次接触前后端分离,现把前端一个例子放出来记录以下,不喜勿喷. html静态页面代码: 菜单管理平台数据... 菜单管理查询条件列表 菜单名称: 菜单父级: 菜单名称: 菜单级别: 菜单父级: 图片地 ...
- 前后端分离的接口规范是什么?
前言 随着互联网的高速发展,前端页面的展示.交互体验越来越灵活.炫丽,响应体验也要求越来越高,后端服务的高并发.高可用.高性能.高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长的领域 ...
- 若依前后端分离如何写移动端接口_前后端分离实践的架构设计
前后端分离的项目开发策略已经不是什么新鲜东西了,网上介绍这方面的文章非常多.我自己是在14年的时候接触到的,对这种开发策略一直爱不释手,不管新老项目都会首先用前后端分离的思维先去思考一番.从14年到现 ...
- Java项目:网上电商项目(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 一款基于Springboot+Vue的电商项目,前后端分离项目,前台后台都有,前台商品展示购买,购物车分类, ...
- Java项目:仿小米商城系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 基于vue + Springboot前后端分离项目精简版仿小米商城 系统,注册登录,首页展示,商品展示,商品 ...
- Java项目:前后端分离疫情防疫平台设计和实现(java+springmvc+VUE+node.js+mybatis+mysql+springboot+redis+jsp)
源码获取:博客首页 "资源" 里下载! 主要技术:Java.springmvc.VUE.node.js.mybatis.mysql.tomcat.jquery.layui.boot ...
- elementui datetimepicker 移动端_在 Gitee 收获 2.5K Star,前后端分离的 RuoYi 它来了
作为 2019 年 Gitee 上最受欢迎的开源项目,权限管理系统 RuoYi 已经在 Gitee 上获得了超过 11K 的 Star. 这次作者若依推出了基于 SpringBoot + Vue + ...
- 运维开发笔记整理-前后端分离
运维开发笔记整理-前后端分离 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么要进行前后端分离 1>.pc, app, pad多端适应 2>.SPA开发式的流 ...
最新文章
- Spring利用JDBCTemplate实现批量插入和返回id
- mysql使用date_format格式化日期
- 若依(基于SpringBoot的权限管理系统)集成MobileIMSDK实现IM服务端的搭建
- 第一次接送宝贝去幼儿园
- 【C语言】while后接分号“ ;”的用法
- [OpenGL ES 03]3D变换:模型,视图,投影与Viewport
- DataTable转成List集合
- CCF 201412-1 门禁系统
- python读取matlab数据_两分钟搞定Python读取matlab的.mat数据
- 计算机四年级测试题目,小学四年级下册数学总复习测试题(人教版)
- 贺利坚老师汇编课程61笔记:操作显存数据即在屏幕上显示
- 一个自定义的C#数据库操作基础类 SqlHelper
- Atitit sumdoc ta index list atiitt 2008 diary 大事记v2 s222.docx Atiti. 2010---2016大事记 just world new
- 收集整理近700套微信朋友圈h5小游戏源码合集大放送
- origin中画1:1线
- 在中兴新支点操作系统玩换装游戏
- 阿兰图灵和冯诺依曼,谁才是可称得起计算机之父呢?
- Ubuntu安装N卡驱动
- steam++工具箱
- html把字母a显示为其asc码,HTML ASCII码