1. 后端开发概念解析
1.1. 什么是服务器,后端服务
1.1.1. 服务器
服务器是一种提供服务的计算机系统,它可以接收、处理和响应来自其他计算机系统(客户端)的请求。服务器主要用于存储、处理和传输数据,以便客户端可以通过网络访问这些数据或服务。服务器可以是硬件设备,也可以是运行在硬件上的软件。
从硬件角度来看,服务器以机器的形式存在各个机房类似我们的PC电脑,实际是一个硬件设备。
从软件角度来看,服务器是运行在硬件设备上的软件,我们通过代码写后端服务,接收请求,处理逻辑:
- nginx应用服务器
- 类似Flask的程序逻辑服务器
1.1.2. 后端服务
在计算机科学中,后端服务通常是指应用程序的后端部分,负责处理业务逻辑、与数据库交互、执行算法等。后端服务通常运行在服务器上,提供数据和功能给客户端。它可以通过不同的协议(例如,HTTP、WebSocket)与前端或其他服务通信。
关于后端服务的一些关键概念:
- 业务逻辑: 后端服务包含应用程序的业务逻辑,负责处理用户请求、执行特定的功能和操作。
- 数据库交互: 后端服务通常需要与数据库进行交互,包括读取和写入数据,以及执行数据库查询和更新操作。
- API(应用程序接口): 后端服务通过API与前端或其他服务通信。API定义了可用于访问后端功能和数据的协议和终点。
- 安全性: 后端服务通常需要实施安全措施,以确保数据的机密性和完整性。这可能包括身份验证、授权、数据加密等。
- 性能和可伸缩性: 后端服务需要具备足够的性能和可伸缩性,以处理大量的并发请求,并在需要时进行水平扩展。
- 服务端技术: 后端服务可以使用不同的编程语言和框架实现,如Java(Spring Boot)、Python(Django、Flask)、Node.js、Ruby(Ruby on Rails)等。
总的来说,后端服务是构成分布式应用架构中的一部分,通过处理业务逻辑和数据管理,为前端或其他客户端提供服务。在现代应用程序中,通常采用前后端分离的架构,使得前端和后端能够独立开发和部署。我们学的后端技术,就是为了开发、部署、维护后端服务
1.2. 正式工作中的不同环境
在软件开发中,尤其是后端程序开发,通常会涉及多个不同的环境,以便进行开发、测试和部署。以下是一些常见的后端程序环境:
- 开发环境(Development Environment):
用途:用于开发和调试代码。
特点:通常配置为开发人员本地机器上的环境,包含开发所需的所有工具、库和服务。
- 测试环境(Testing Environment):
用途:用于进行单元测试、集成测试和系统测试。
特点:尽可能模拟生产环境,但通常规模较小,用于检测和解决代码中的问题。
- 预发布环境(Staging Environment):
用途:用于测试部署到生产环境之前的最终版本。
特点:模拟生产环境,并使用生产环境相似的硬件和软件配置。
- 生产环境(Production Environment):
用途:运行实际的生产应用程序,提供服务给最终用户。
特点:具有高可用性、性能优化和安全性,通常包括负载均衡、故障恢复机制等。
这些环境的设置有助于确保开发人员能够在相对隔离的环境中进行工作,同时在生产环境之前检测和解决潜在的问题。这也有助于提高软件质量、可靠性和可维护性。
1.3. 前后端交互流程
在 Web 开发中,前端和后端是通过 HTTP 协议进行通信的。前端负责展示用户界面,而后端负责处理业务逻辑、与数据库交互以及提供数据和服务。以下是它们之间协作的一般过程:
- 前端请求(Request):
- 用户在浏览器中输入 URL 或者与前端页面进行交互,触发了一个 HTTP 请求。
- 请求中包含了与服务端通信所需的信息,如参数、头部信息等。
- 后端处理请求:
- 服务器接收到请求后,后端应用程序开始处理它。
- 后端应用程序执行业务逻辑,可能包括从数据库中检索数据、验证用户身份、计算等。
- 数据库交互:
- 如果业务逻辑需要与数据库交互,后端会执行相应的数据库查询或更新操作。
- 生成响应(Response):
- 后端应用程序生成一个 HTTP 响应,其中包含了处理结果、数据等。
- 响应通常是一个包含数据的 JSON 对象,也可以包括其他资源如图片、文件等。
- 前端接收响应:
- 浏览器接收到后端的响应后,前端开始解析响应,提取出所需的数据。
- 更新用户界面:
- 前端使用从后端获取的数据更新用户界面,可能涉及到更新页面内容、刷新列表、显示错误消息等。
- 用户交互:
- 用户与前端界面进行交互,可能触发新的请求,形成新的请求-响应循环。
这种前后端协作的方式被称为前后端分离(Frontend-Backend Separation)或前后端分离架构。在这种架构中,前端和后端是独立的系统,通过定义好的接口进行通信。这使得可以使用不同的技术栈来开发前端和后端,同时也更容易实现代码的重用和维护。
常见的前后端通信方式包括使用 RESTful API、GraphQL 等。RESTful API 是一种使用 HTTP 请求进行通信的方式,而 GraphQL 则允许前端请求指定其需要的数据结构。
1.4. 前后端开发流程
假如要开发一个根据商品名称查询商品信息的功能(比如网页搜索商品),这用HTTP协议举例。
-
前后端定义好接口传输的协议格式,一般都是json格式。
-
定义好HTTP请求方法、接口名字、前端传参、后端返回的参数。
确定HTTP请求方法:
因为是查询功能,根据RESTful url的规定,HTTP请求方法是请求资源的动作,所以用GET请求。
接口名字:
起一个有意义的名字,这里是根据商品名称查询商品信息,因此接口路由起名叫 /search;
当前用 /query_by_name 也可以,合理即可;
前端将把请求发给这url,进行HTTP请求。
前端请求协议 request:
查询商品,那么我们要传入商品名称;
定义好参数名称,和参数value的数据结构,这里是string。
后端响应协议 response:
查询的结果可能如上图所示,这里在开发前应该找需求方确认好需求,心里有预期
需要给前端的信息:
我们可能只有需要知道商品的价格、名称、描述、店家、评价数目等。
搜索会搜索出很多商品信息,所以应该返回Json数组
开发:确认协议后前后端各自开发,互不影响
自测:根据协议,使用postman等工具,构造数据,测试样例进行自测,保证开发的后端功能正确,并且不影响其他接口
自测方式:使用postman等工具
本地多打日志观察数据正确性
前后端联调:
自测确认没问题了,和前端同学一起联调,实际上就是前端真正请求你后端接口的数据,观察前后端在真正请求时候的正确与否
如果联调有问题,再及时修改
提交代码,项目部署上线