架构模式--从Mvc前后端分离架构
传统MVC开发模式(没有上下级关系)
Mvc含义
Model(模型数据)
View(视图)
Controller(控制器)
JSP(model)+Servlet(view)+JavaBean(controller)
四大痛点
- 运行存在效率问题:JSP必须在Servlet容器中运行(如Tomcat)。在请求JSP时也需要进行一次编译过程,最后被编译成Java类和class文件这些都会占用JVM的内存空间。JSP和Java语言关联,在解耦上无法与HTML页面相媲美
- 开发人员分工不明:MVC开发模式工作流程通常是前端工程师编写 HTML 页面,后端工程师再将其转换为 JSP页面进行逻辑处理和数据展示在某些紧急情况下,会出现前端工程师调试后端代码,后端工程师调试前端代码现象,导致分工不明确且沟通成本大,需要前后端一起协调工作
- 极不利于项目推进:前后端代码耦合度高,模块优化空间小,修改任何前端或后端代码都需要重新发布。前后端开发工程师只能串行工作,无法并行推进项目,项目开发效率低
- 无法满足业务需求:前端仅限于浏览器端的 Web 应用,无法满足公司业务发展的需要(如 Android原生app、i0S 原生app、微信小程序等)
前后端分离是一种项目开发模式
前后端分离是一种项目部署模式
前后端分离后,各端应用可以独立打包部署,并针对性地对部署方式进行优化(不再是将前端后端代码耦合在一起,最终形成一个部署包进行部署)
客户端浏览器----Nginx部署静态HTML页面----Tomcat部署动态Java文件
前后端分离的7大优势
- 真正实现前后端解耦(前后端人员可以独立进行开发)
- 并发开发提升开发效率(前后端解耦后可实现并行开发,不再是前后端代码强依赖)
- 任务分工明确职责分明(前后端开发人员的职责更加清晰,不会出现相互推诿的现象)
- 增加代码维护性和易读性(前后端开发的解耦让和各端代码更易于维护和阅读)
- 适应多产品业务扩展需要(一旦业务扩展需要进行多产品开发,后端API接口可以直接复用,大幅度提升效率)
- 前端部署无缝升级(前端项目部署时不需要重启服务器)
- 分开部署减轻后端服务器压力(后端服务器仅需处理用户的动态请求即可)
前后端分离的注意事项
- 项目前端开发资源是否充足:传统 MVC 是以后端为主的开发模式,前端人员仅提供静态 HTML 页面,但采用前后端分离开发模式则会减轻后端开发人员压力而增加前端开发人员的工作量
- 软件迭代周期需要慎重估算:对于中小型团队,采用前后端分离开发模式,增加了接口制定流程赫尔前后端联调流程,可能会延长迭代周期
- 项目足够简单需要快速迭代:如果项目比较简单或一个项目需要快速开发上线,就可以采用传统的 MVC 开发模式进行快速迭代
- 前后端开发人员的沟通成本:前后端分离后,无论是 API接口的对接还是测试工作都涉及前后端人员的沟通和协作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!