前后端分离理解

总结:

非前后端分离项目架构:
 1,JSP+sevlet
这种架构JSP中有Java代码强侵入。
 2,JSP+Spring
 分层次(MVC)架构,JSP保留部分Java标签。
 3,springboot + 模板
 spring脚手架,第二种的变种。

前后端分离项目架构:
 1,Vue + springboot(前端项目+后台接口)

前端负责:
 1,页面显示,交互处理(职责)。
 2,基于功能的层次结构划分(模块)。
后端负责:
 1,接口定义,业务处理(职责)。
 2,中小企业:先按结构分层(MVC)+模块(业务);大型企业:先业务模块,在结构。

为什么分离?
 1,结构区分,大型项目可以前端和后端一起开发,缩短了项目交付时间。
 2,专业性,前端更加关注页面;后端关注逻辑,数据。
 3,生态,前端强大的生态系统,可以更加好的实现页面展示。后端亦如此。
 4,后端服务器压力减小,很多校验业务可以在前端实现。
 5,前端强大的组件库,更容易跨平台

详细介绍:

非前后端分离项目架构:
 1,JSP+sevlet
 这种架构JSP中有Java代码强侵入。
JSP页面:负责视图层的渲染及交互,内部可以嵌入java 代码,在某些场景下开发起来比较方便,但是这种页面和
java代码混合开发的方式造成逻辑不够直观,项目代码维护起来困难。
Servlet类: 负责接收from表单提交的参数,进行业务层逻辑和页面导航的处理。但是这种方式需要区分请求的方式
,手动把请求的参数拿出来进行封装。基本上一个请求对应一个servlet,需要在web.xml文件中配置urL映射或者注
解的方式。

 2,JSP+Spring
 分层次(MVC)架构,JSP保留部分Java标签。
jsp + spring mvc开发模式:spring 框架流行起来后,着重关注的是分层设计,即MVC的概念,个人认为jsp+spring
带来的最大好处是简化了之前servlet时代编写web流程的复杂度,各种注解、各种参数自动注入极大提高了java web
的开发效率,此时对Jsp页面有一个共同的约束,即JSP页面不要在嵌入除标签外的java代码,这样初步把视图层抽出
来。但是这种方式的约束性依然很大,即应用强依赖于java生态。

 3,springboot + 模板
 
spring boot是spirng的一个脚手架,能够快速搭建spring项目,使用默认配置减少开发者手动的配置,与第三发包
的各种整。模板相对于jsp页面来说,进一步进行视图层的模块化,即可以按照页面的结构进行划分,常用的例如
Header,footer,Silder Menu, Center Conter这样的版块接口进行划分,把页面进行分片处理,提高代码的复用度。


前后端分离项目架构:
 1,Vue + springboot(前端项目+后台接口)
为什么分离?
 1,结构区分,大型项目可以前端和后端一起开发,缩短了项目交付时间。
 2,专业性,前端更加关注页面;后端关注逻辑,数据。
 3,生态,前端强大的生态系统,可以更加好的实现页面展示。后端亦如此。
 4,后端服务器压力减小,很多校验业务可以在前端实现。
 5,前端强大的组件库,更容易跨平台

缺点:
 1,沟通成本增加,接口定义等
 2,对于小项目划分前后端,结构更加负责,人力成本增加(2套服务,运维,硬件等)


如何分离?

职责划分:当从非前后端分离的项目转到前后端分离的项目,如何确认分离的切入点?
首选需要理解前后端的职责,即前端负责页面构建和交互处理,后端负责接口定义和业务处理。
所有页面上能看到的功能基本都是前端的,所有涉及数据的查询、保存都是后端的,
前端不需要关心数据的输入和输出,而关注数据在这个过程中的交互逻辑;
后端需要关心页面如何渲染和交互,而关注输出数据和接收数据。从上面可以看出职责即是功能的划分。

模块划分:前后端模块划分关注点不同。后端模块划分时一般有两种方式,第一种是先分层,再按照模块划分。
即先按照全局、工具、控制层、服务层、数据操作层等这种基于MVC的结构进行划分,
然后再将控制层、服务层、数据操作层按照业务模块进行划分。第二种方式按先模块后结构进行划分,
即先按照业务模块划分不同的结构,然后每个模块根据需要决定是否进行MVC结构的划分。
一种更适用于中小型项目的构建,第二种更适用于大型项目,能够对按照业务垂直划分结构,方便部署和扩展。
前端模块划分基本基于功能的层次结构。第一层一般是全局配置、静态资源、工具类、视图、组件并列的结构,第二
层是组件的复合结构和视图的复合结构,第三层是组件的独立结构。

前端负责:
 1,页面显示,交互处理(职责)。
 2,基于功能的层次结构划分(模块)。
后端负责:
 1,接口定义,业务处理(职责)。
 2,中小企业:先按结构分层(MVC)+模块(业务);大型企业:先业务模块,在结构。


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值