【学习小记】001.前后端分离小疑问

根据java学习情况和查找资料,记录下来,方便后续可持续、可移动、可有迹可循的学习。在面临找工作之际,想要选一个java项目,之前打工做项目涉及了前后端分离项目,做了一个前端项目(只有一个界面+一个静态数据显示+推拉流服务器nginx),但是找工作选择了java,也就是相当于转后端,所以对于关键技术栈的学习和了解思路不够清晰,再者是就业岗位偏向软件开发等,岗位技术需求以及个人情况了解不清楚,故需要进行后端的学习和项目搭建。于是思考前后端分离项目的概念以及与前后端项目相比较区别在哪里?

一、前后端分离是什么?

1.1 概念

前后端分离,补充学习前后端不分离。

1.1.1 前后端分离

定义: 前后端分离指的是前端(用户界面)和后端(业务逻辑和数据处理)独立开发和部署。前端通过API(通常是HTTP接口)与后端进行通信。

特点

  1. 开发流程

    • 前端和后端可以并行开发
    • 前端使用HTML、CSS、JavaScript等技术栈,后端使用服务器端技术(如Node.js、Python、Java、Ruby、MySQL等)。
  2. 部署

    • 前端代码通常托管在静态文件服务器上(如Nginx、Apache),或者通过CDN分发。
    • 后端代码部署在应用服务器上(如Express、Django、Spring等)。
  3. 通信

    • 前端通过API(通常是RESTful或GraphQL)与后端通信。
  4. 优点

    • 前后端可以独立扩展和优化。
    • 技术栈灵活,前后端可以选择最适合各自的技术。
    • 更好的团队协作,前后端开发人员可以专注于各自领域。
  5. 缺点

    • 增加了系统的复杂性,需要处理跨域问题、API管理等。
    • 初期开发成本可能较高,需要定义和维护API接口。

例子

  1. 单页应用程序(SPA)

    • 使用React、Vue.js或Angular构建前端,后端使用Node.js、Django、Flask等提供API服务。
    • 典型例子:一个电商网站,前端提供商品浏览、购物车、结账等功能,后端处理用户验证、订单管理、支付等业务逻辑。
  2. 移动应用程序

    • 前端是移动应用程序(iOS或Android),通过API与后端服务器通信。
    • 典型例子:一个社交媒体应用,移动端提供用户界面和交互,后端处理数据存储、消息推送等。

前后端分离和前后端不分离是两种不同的架构模式,它们在开发流程、技术选型、部署方式等方面有明显的区别。

1.1.2 前后端不分离

定义: 前后端不分离指的是前端和后端代码紧密结合在一起,通常在同一个项目中开发和部署。

特点

  1. 开发流程

    • 前端和后端在同一个代码库中开发。
    • 使用服务器端模板引擎(如JSP、Thymeleaf、EJS等)生成HTML。
  2. 部署

    • 前后端代码一起部署在同一个服务器上。
    • 服务器生成并返回完整的HTML页面给客户端。
  3. 通信

    • 前后端通过同步请求直接交互,服务器返回完整的HTML页面。
  4. 优点

    • 简化了开发和部署流程,没有跨域问题。
    • 初期开发成本较低,适合小型项目或快速原型开发。
  5. 缺点

    • 难以进行独立的前后端优化和扩展。
    • 前端和后端的耦合度高,不利于团队分工合作和技术栈多样化。

例子

  1. 传统的多页应用程序(MPA)

    • 使用JSP、Thymeleaf(Java),Razor(.NET),Twig(PHP)等模板引擎生成HTML页面。
    • 典型例子:企业内部管理系统,所有页面由服务器渲染并返回给客户端,用户通过页面间的链接和表单与系统交互。
  2. 早期的Web应用程序

    • 使用PHP、ASP等技术,服务器端处理所有业务逻辑并生成HTML页面。
    • 典型例子:早期的博客系统、论坛等。

1.1.3 小结

  • 其他有深度的文章参考:

githubcurry写的这篇文章:前后端分离和不分离到底有什么区别_前后端分离相较于不分离-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值