首页 > 其他分享 >前后端架构

前后端架构

时间:2023-06-04 18:11:06浏览次数:30  
标签:架构 前端 前后 接口 开发 后台 页面

目前主流的开发模式,就两种:前后端分离 和 前后端不分离

前后端不分离
  • 这种模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。
  • 这种应用模式比较适合 纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不再适用于前端App应用,为了对接App后端还需再开发一套接口。

请求的数据交互如下图:

image-20230604103618224

flask框架应用模板开发就是前后端不分离开发模式

image-20230604103745759

特点

  • http请求次数少
  • 只需要一个后台服务器
  • 前后端开发耦合,责任不明确
  • 单纯开发网站,效率非常高
  • 响应的往往是html的页面
  • 分工
    • 前端:负责写html、css、js
    • 后端:需要控制数据的展示,负责渲染页面或重定向
  • 实现方案:访问页面后,后端根据路由进行匹配视图函数,通过render等返回页面和数据,如:return render(request,'home.html',res)渲染页面。

image-20230604161610503


前后端分离

含义:前后端开发约定好接口文档(url、参数、数据类型等),独立开发,前端可mock数据进行测试,最后前后端集成,实现了前后端应用的解耦合。

  • 在前后端分离的应用模式中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。
  • 在前后端分离的应用模式中 ,前端与后端的耦合度相对较低。
  • 在前后端分离的应用模式中,我们通常将后端开发的每个视图都称为一个接口,或者API,前端通过访问接口来对数据进行增删改查。

对应的数据交互如下图 :

特点:

  • 有静态文件服务器、后台的应用服务器
  • 后台服务器只提供的接口的服务
  • 前后端责任分工明确
  • 一个后台即可满足网站、app、小程序等多种应用的需要
  • 响应的往往是json的数据
  • 分工:
    • 前端:负责数据展示和用户交互
    • 后端:负责提供数据处理接口
  • 实现方案:
    • 一般基于vue.js框架来编写前端页面,需要通过ajax形式向后端发送请求获取接口数据。后端接收到请求后,执行视图函数,将数据以json格式返回给前端。前端接收到数据后,渲染到页面。

前后端分离的优点:

  • 彻底解放前端:前端不再需要向后台提供模板或是后台在前端html中嵌入后台代码

  • 前后端可同时开发,完全独立,提升效率:前后端分离的工作流程可以使前端只关注前端的事,后台只关心后台的活,两者开发可以同时进行,在后台还没有时间提供接口的时候,前端可以先将数据写死或者调用本地的json文件即可,页面的增加和路由的修改也不必再去麻烦后台,开发更加灵活。

  • json数据格式拓展性强

  • 局部性能提升:通过前端路由的配置,我们可以实现页面的按需加载,无需一开始加载首页便加载网站的所有的资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。

  • 降低维护成本:通过MVC框架,我们可以非常快速的定位及发现问题的所在,客户端的问题不再需要后台人员参与及调试,代码重构及可维护性增强。

标签:架构,前端,前后,接口,开发,后台,页面
From: https://www.cnblogs.com/DQ-MINE/p/17456037.html

相关文章

  • MySQL逻辑架构图
    整体架构MySQL可以分为Server层和存储引擎层两部分。不同的存储引擎(不同的表可以设置不同的存储引擎)共用一个Server层(从连接器到执行器)。查询流程连接器Command列显示Sleep表示空闲连接。如果客户端太长时间没动静,那么连接器会自动将它断开,由参数wait_timeout控制,默认值是8......
  • 系统架构设计师笔记第4期:统一建模语言(UML)
    统一建模语言(UnifiedModelingLanguage,简称UML)是一种用于软件系统分析、设计和文档化的标准建模语言。它提供了一组图形符号和规则,用于描述系统的结构、行为、交互和其他相关方面,以便开发人员、设计师和利益相关者之间进行沟通和共享理解。通过使用UML,开发人员和设计师可以使用标......
  • 备忘:值得一看的文章,网站架构相关
    http://3g.163.com/ntes/special/0034073A/qq_article.html?docid=9GD1NIUD00964KA8http://3g.163.com/ntes/special/0034073A/qq_article.html?docid=9HIPAKH400964KA8http://3g.163.com/ntes/special/0034073A/qq_article.html?docid=99N86UP700964KA8http://3g.163.com/nte......
  • 架构设计的外部适应性
    从架构设计的角度来说,我们要把大多数的尝试尽量封装到一个小的领域内。这个时候,多次的业务尝试不会随着时间而导致混乱,削减技术体系的外部适应性。做到这点,下面的这些架构原则非常重要。第一,单一职责,指的是要把每个业务尝试尽量封装到一个单一模块中。好处是一旦尝试失败,就可以迅速......
  • ArchUnit 架构测试框架
    很多时候我们觉得架构比较复杂,或者架构比较玄幻,同时对于自己设计的架构方案心里总是没有底ArchUnit是一个不错的选择可以像单元测试一样,测试我们的架构是否合理(包含了包以及类的依赖,分层,循环依赖。。。。)说明对于希望检查自己方案架构问题的,可以尝试下ArchUnit工具参考资料https:......
  • 大件货运系统源码,技术架构:spring boot、mybatis、redis、vue、element-ui
    网络货运平台源码网络货运平台的功能网络货运是指利用互联网平台,通过物流配送的方式进行商品销售和物流运输的一种新型商业模式。这种模式将传统的货运模式与互联网技术相结合,通过网络平台进行交易、物流配送和结算等一系列流程,从而实现货物的快速、高效、便捷地运输。技术架构:spr......
  • 系统架构设计师笔记第3期:软件测试
    软件测试是指在开发过程中对软件系统进行验证和评估的过程。它是一种系统性的活动,旨在发现软件中的缺陷、错误和问题,以确保软件满足预期的需求和质量标准。软件测试涉及执行软件的各种功能和操作,以验证其正确性、可靠性、安全性和性能。软件测试的主要目的是:发现软件中的缺陷和错误......
  • COS20019云计算架构
    COS20019CloudComputingArchitecture-Assignment02ScalableCloudComputingArchitecture(30%)Table1.ModificationHistoryDate(created/modified)Purposes2023-04-28Createdtheassignment2023-05-06Finalizetheassignment2023-05-16Revisedassuggested......
  • JanusGraph架构——gremlin是提交spark任务计算,数据读写转给后端DB做读写
    JanusGraph是一个图形数据库引擎。JanusGraph本身专注于压缩图序列化、丰富图数据建模、高效的查询执行。此外,JanusGraph利用Hadoop进行图分析和批处理。JanusGraph为数据持久化,数据索引和客户端访问实现了强大的模块化接口。JanusGraph的模块化架构使其能够与各种存储,索引和客......
  • 架构-如何画架构图
    资料如何画出一张合格的技术架构图?如何画架构图?产品经理的高阶能力:架构图的设计与画法设计图都不会画,还想做”架构师“?你知道如何画好一幅架构图么?系统逻辑架构图怎么画想要做”架构师“,一定要会画设计图画出你的项目架构图一个关于“系统架构图怎么画?”的问题不错的架构图BFF-Ba......