miniui 使用后端数据_什么是前、后端分离?
点击上方蓝字 关注我们导读随着互联网的高速发展以及IT开发技术的升级,前后端分离已成为互联网项目开发的业界标准使用方式。许多公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事,后端工程师只管后端的事。正所谓术业有专攻,把各自优势发挥到极致!之前的文章也谈到过什么是前端、后端。前端:是写代码给浏览器看的。后端:是写代码给服务器看的。 把前端与...
点击上方蓝字 关注我们
导读
随着互联网的高速发展以及IT开发技术的升级,前后端分离已成为互联网项目开发的业界标准使用方式。许多公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事,后端工程师只管后端的事。正所谓术业有专攻,把各自优势发挥到极致!
之前的文章也谈到过什么是前端、后端。
前端:是写代码给浏览器看的。
后端:是写代码给服务器看的。
把前端与后端独立起来去开发,放在两个不同的服务器,需要独立部署。两个不同的工程,两个不同的代码库,不同的开发人员,前后端工程师需要约定交互接口,实现同步开发。开发结束后需要进行独立部署,前端通过接口来调用调用后端的API,前端只需要关注页面的样式与动态数据的解析和渲染,而后端专注于具体业务逻辑。
核心思想是前端html页面通过AJAX调用后端的restuful api接口并使用json数据进行交互。
前端工程师
对于前端工程师而言
把精力放在html5、css3、jquery、angularjs、bootstrap、reactjs、vuejs、webpack、less/sass、gulp、nodejs、google v8引擎、JavaScript多线程、模块化、面向切面编程、设计模式、浏览器兼容性、性能优化等。
前端更加追求的是:页面表现、速度流畅、兼容性、用户体验等。
后端工程师
对于后端工程师而言
把精力放在java基础,设计模式,jvm原理,spring+springmvc原理及源码,linyx、mysql事务隔离与锁机制、mongodb、http/tcp、多线程、分布式结构、弹性计算架构、微服务架构、java性能优化、以及相关的项目管理等。
后端更加追求的是:三高(高并发、高可用、高性能)、安全、存储、业务等。
传统开发
前后端分离前的开发模式:
前端写好静态的HTML页面交付给后端开发。静态页面可以本地开发,也无需考虑业务逻辑只需要实现View即可。
后端使用模板引擎去套模板,同时内嵌一些后端提供的模板变量和一些逻辑操作。
然后前后端集成对接,遇到问题,前台返工,后台返工。
然后在集成,直至集成成功。
这种模式的问题
在前端调试的时候要安装完整的一套后端开发工具,要把后端程序完全启动起来。遇到问题需要后端开发来帮忙调试。我们发现前后端严重耦合,还要要求后端人员会一些HTML,JS等前端语言。前端页面里还嵌入了很多后端的代码。一旦后端换了一种语言开发,简直就要重做。
像这种增加了大量的沟通成本,调试成本等,而且前后端的开发进度相互影响,从而大大降低了开发效率。
分离开发
前后端分离并不只是开发模式,而是web应用的一种架构模式。在开发阶段,前后端工程师约定好数据交互接口,实现并行开发和测试;在运行阶段前后端分离模式需要对web应用进行分离部署,前后端之前使用HTTP或者其他协议进行交互请求。
01
客户端和服务端采用RESTFul API的交互方式进行交互
02
2. 前后端代码库分离
在传统架构模式中,前后端代码存放于同一个代码库中,甚至是同一工程目录下。页面中还夹杂着后端代码。前后端工程师进行开发时,都必须把整个项目导入到开发工具中。
前后端代码库分离,前端代码中有可以进行Mock测试(通过构造虚拟测试对 象以简化测试环境的方法)的伪后端,能支持前端的独立开发和测试。而后端代码中除了功能实现外,还有着详细的测试用例,以保证API的可用性,降低集成风险。
03
并行开发
在开发期间前后端共同商定好数据接口的交互形式和数据格式。然后实现前后端的并行开发,其中前端工程师在开发完成之后可以独自进行mock测试,而后端也可以使用Postman等接口测试软件进行接口自测,然后前后端一起进行功能联调并校验格式,最终进行自动化测试。


前后端分离优点
1、彻底解放前端。前端不再需要向后台提供模板或是后台在前端HTML中嵌入后台代。
2、提高工作效率,分工更加明确。前端只关注前端的事,后台只关心后台的活,两者开发可以同时进行,在后台还没有时间提供接口的时候,前端可以先将数据写死或者调用本地的JSON文件即可,页面的增加和路由的修改也不必再去麻烦后台,开发更加灵活。
3、局部性能提升。通过前端路由的配置,可以实现页面的按需加载,无需一开始加载首页便加载网站的所有的资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。
4、降低维护成本。通过目前主流的前端MVC框架,我们可以非常快速的定位及发现问题的所在,客户端的问题不再需要后台人员参与及调试,代码重构及可维护性增强。
5、实现高内聚低耦合,减少后端(应用)服务器的并发/负载压力。
6、即使后端服务暂时超时或者宕机了,前端页面也会正常访问,但无法提供数据。
7、可以使后台能更好的追求高并发、高可用、高性能,使前端能更好的追求页面表现、速度流畅、兼容性、用户体验等。
请扫码
给个关注
小马技术圈
交流 | 分享
版权声明:凡非原创内容,皆秉承分享宗旨。图文整理自网络公开信息,版权属原持有人,亦非本公众号观点,如有侵权,请联系我们删除。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)