IT实战联盟博客:http://blog.100boot.cn​​​​​​​

####前后端分离的演变

记得12年从事工作的时候公司还没有专门的前端人员,一般我们都是前后端都会,毕竟那时候H5才刚刚起来微软的XP还在流行使用(默认系统自带IE6),IE的市场份额还是蛮大的。做的产品也没有很炫酷的特效(如果有也会选择使用flex),那时候Flash 是超级火的......扯得有点远了。
在开发的时候也是一边API接口服务,一边开发页面,发布也是一个发布包搞定。前端一般只是负责切图工作,就是将UI设计师的设计图布局成静态页面,前端是不参与交互逻辑和业务开发的,前端也是当时统一的吐槽对象。当时淘宝的Web架构比较流行基本上都是基于MVC框架webx,所以前端写好静态html 然后后端开发人员翻译成vm模板.....
这样就导致了前后端工作的分配不均,开发效率慢,代码维护量也大。为了解决痛点 慢慢开始前后端分离的架构流行开来 很好的解决了前后端分工不均问题,将更多的交互逻辑分配给前端来处理,而后端则可以专注于其本职工作。例如后台开发可以有跟多的时间进行后台权限控制以及复杂的运算工作,前后台解耦 ,两者同时开始推进项目进度,增加开发效率。

####如何进行前后端分离
最开始的时候是SPA式的前后端分离法,单纯的从物理层做区分(认为只要是客户端的就是前端,服务器端的就是后端),这种分法不能满足前后端分离的需求,认为从技术职责上划分才能满足目前我们的使用场景,作者在工作中使用过两种方案:

第一种:
前端:负责View和Controller层。
后端:只负责Model层,业务处理/数据等。

优点:可以做url design,我们可以根据场景决定在服务端同步渲染,还是根据view层数据输出json数据,我们还可以根据表现层需求很容易的做Bigpipe,Comet,Socket等等,完全是需求决定使用方式。
缺点:需要前端来写Controller,以Java语言开发为例,需要前端学会Java开发,这样在处理复杂的业务逻辑的产品里双方都有Java 代码方面的重叠。

第二种:
前端:负责View层。
后端:负责和Controller、Model层和业务处理/数据等。

优点:前端不需要学习后台开发语言,只需要调用API服务就好,前后端代码分别统一管理起来 形成自己的对接规范。这样前端可以和不同的后台语言做对接服务。

####RESTful Api和Json搭建前后台交互

备注:现在公司使用的RESTful 架构,后台提供一组设计原则和约束条件。

RESTful 主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

RESTful Api和Json 技术的使用让前后端交互日益便利
前后端分离以后就存在数据交互的问题,如何快速、简洁、有效和统一的在前后台进行信息的交互,成为分离以后必须考虑的问题。
幸运的是, RESTful思想和Json数据标准的出现,使得这种交互日益便利,在前端,我们耳熟能详的JS技术和框架对RESTful和Json的支持可以说已经水到渠成. 至于后端,不管什么语言,什么平台都有非常成熟的方案.
前后端的不同发展趋势使得前后端分离需求日益明显.

####渐进式框架Vue.js

Vue  是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

备注:先介绍到这里,有不同的想法可以下方留言一起讨论。

总结:众所周知,Web开发自出现以来一直存在性能,表现和体验的先天不足,但时至今日,事实已经并非如此,一些看上去甚至比桌面程序更炫的应用和网站横空出世,客户也被吊足了胃口。Web开发桌面化已经是无法阻挡的潮流,而前端开发的需求应该会向更加注重界面表现,速度流畅,用户体验的方向发展,而且要求只会越来越高。
而在后端稳定、性能、安全、存储和业务等核心问题依然是主流,所以前后端的需求必将日益分化,注重表现和注重内在的前后端开发人员必将需要适合自己的舞台。

更多精彩内容请关注“IT实战联盟”公号哦~~~
IT实战联盟博客:http://blog.100boot.cn​​​​​​​

Java Web架构实战篇:聊一聊前后端分离架构相关推荐

  1. 前后端分离架构一直没机会实战?1周完成Vue+Core WebApi移动商城实战(含源码)!...

    疫情让企业受到重创! 就业形势更加严峻! 前后端分离架构成了当下最高频的招聘需求 还没实战过前后端分离? 花3分钟阅读本文, 带你全面了解前后端分离,轻松面试拿高薪! Web发展至今技术非常成熟,主流 ...

  2. 前后端分离架构:Web 实现前后端分离,前后端解耦

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 blog.csdn.net/fuzhongmin05 推荐:https://ww ...

  3. 企业管理系统前后端分离架构设计 系列一 权限模型篇

    ACL(Access Control List)(访问控制列表) DAC(Discretionary Access Control)(自主访问控制) MAC(Mandatory Access Cont ...

  4. 大型医院云HIS系统:采用前后端分离架构,前端由Angular语言、JavaScript开发;后端使用Java语言开发 融合B/S版电子病历系统

    一套医院云his系统源码 采用前后端分离架构,前端由Angular语言.JavaScript开发:后端使用Java语言开发.融合B/S版电子病历系统,支持电子病历四级,HIS与电子病历系统均拥有自主知 ...

  5. 若依前后端分离如何写移动端接口_前后端分离架构概述

    1.背景 2.未分离时代(各种耦合) 3.半分离时代 4.分离时代 5.总结 <Netty 实现原理与源码解析 -- 精品合集> <Spring 实现原理与源码解析 -- 精品合集& ...

  6. spring boot+iview 前后端分离架构之文件上传的实现(三十一)

    spring boot 与 iview 前后端分离架构之文件上传的实现(三十一) 公众号 文件上传 前端改造 main.js引入配置的全局变量 编写baseImgUpload图片上传组件 baseIm ...

  7. 前后端分离架构中的接口安全(上篇)

    互联网发展至今,已由传统的前后端统一架构演变为如今的前后端分离架构,最初的前端网页大多由JSP.ASP.PHP等动态网页技术生成,前后端十分耦合,也不利于扩展.现在的前端分支很多,如:Web前端.An ...

  8. spring boot+iview 前后端分离架构之前后端交互的实现(六)

    spring boot 与 iview 前后端分离架构之前后端交互的实现(六) axios的跨域访问工具的封装实现 实现前后端交互-后端的实现 实现前后端交互-前端的实现 bug修复 mysql的ma ...

  9. spring boot+iview 前后端分离架构之用户管理的实现(三十)

    spring boot 与 iview 前后端分离架构之用户管理的实现(三十) 公众号 用户管理 相关工具类的实现 User实体改造 UserOrg实体改造 UserRole实体改造 UserRole ...

  10. JavaWeb前后端分离架构

    目录 JavaWeb前后端分离架构 前后分离的优势 在本机中部署项目 关于验证 Cookie & Session Token & JWT token验证流程 JWT的构成 JWT搭建使 ...

最新文章

  1. python使用openCV图像加载(转化为灰度图像)、使用filter2D函数对图像进行锐化(Sharpen Images)
  2. 2020人工神经网络第一次作业-解答第一部分
  3. Vue开发规范1.0
  4. 安防监控工程中该如何选择光端机?
  5. 极光推送指定用户推送_干货|SpringBoot集成极光推送完整实现代码(建议收藏)...
  6. 【Tomcat】Tomcat下设置项目为默认项目
  7. 【证明】—— 二叉树的相关证明
  8. html5 tooltips,纯js轻量级tooltips工具提示插件
  9. openEuler软件包加固项目笔记
  10. 蓝桥杯省赛2020 成绩统计
  11. 广告终结者自定义过滤搜集
  12. 荣耀安装google谷歌服务框架_荣耀V20怎么下载安装谷歌服务助手,GMS框架安装教程...
  13. Element概述、入门案例及布局
  14. Java学习笔记——Character类
  15. Linux种修改用户主目录命令,usermod命令怎么修改用户主目录
  16. 数据化是什么,企业为什么要数据化管理?【Teamface企典】
  17. vue 根据身份证号获取性别,年龄,出生年月
  18. uni-app获取当前位置并计算出某个地点距离
  19. AIIA-2021版《电信行业人工智能应用白皮书》
  20. word文档画笔添加后灰色无法启用!

热门文章

  1. linux内核定时器使用及原理
  2. loop设备及losetup命令介绍
  3. HDU - 4704(费马小定理和快速幂)
  4. RDD,DataFrame与DataSet区别
  5. 【快速乘与快速幂例题讲解】相乘取余爆long long?试试快速乘吧!
  6. java反射 优缺点_Java反射机制的原理与使用(反编译)
  7. 51nod1242--斐波那契第n项--矩阵快速幂
  8. 清除VCENTER中的日志文件
  9. linux上sh工具如何使用,怎样用 Bash 编程:语法和工具 | Linux 中国
  10. 华为路由器内部服务器地址映射不起作用,第一次买华为AR2204-s路由,内部服务器映射问题...