跳到主要内容位置

给前端工程师看的后端科普

张旭乾
软件工程师 / B站UP主

前端工程师了解后端的功能和作用之后,能更好的和后端工程师进行沟通,减少沟通成本,另外也有助于向全栈工程师方向发展。在开始之前,先回顾一下应用的构成:

B 站视频 - 点击传送

应用的构成

一个完整的应用通常包括前端和后端两个部分。前端是直接与用户打交道的部分,通常指的是网页,采用 HTML/CSS/JS 语言编写,运行在用户自己电脑的浏览器上。后端则是运行在远程的服务器上,用来收集和处理用户传来的数据,然后把结果再传给前端,展现给用户。

前后端分离的演化

在以前,当 web 应用还是主流的时候,前后端应用包含在同一个项目中,工程师需要同时负责这两个部分,接收到用户的请求后,处理请求,然后生成对应的 HTML页面,再把生成好的页面发送给用户。

后来随着手机和智能设备的普及,因为移动 app 必须安装在客户端手机上,这样就导致越来越多现有的 web 应用需要单独提供接口给 APP 使用,即使他们用到的数据一样的。一套程序同时维护两套接口就打破了”不编写重复代码“的原则,所以 web 页面的展现也像 APP 一般分离了出来,这样后端只需要提供一套 API,就可以让 web和APP共同使用。Web 前端也就变成了像 App 一样的客户端程序,第一次访问页面时,由服务器直接把整个前端程序发送到浏览器中,剩下的请求统一在 web 前端处理,直接访问后端 API 接口。广义上的前端,是包括 app、小程序和桌面应用的,也就是所谓的大前端,所有负责数据展现并与用户交互的程序都可以称之为前端。由此,我们前端工程师专门负责前端,后端工程师负责后端。

后端的作用

接下来看一下后端的作用和组成部分。

简单来讲...

前端应用根据一定协议(比如 HTTP) 发送请求给后端,后端接收请求后,解析请求参数,然后根据这些参数来进行数据的计算和处理,最后把结果返回给前端。

一个最基本的后端应用由三个部分组成:

  • 服务器程序,用于接收请求和发送响应。
  • 后端应用程序,用于处理请求,并完成业务逻辑,然后利用服务器程序把结果响应给前端。
  • 数据库:用于保存和业务逻辑相关的数据,便于再次使用,比如用户注册的信息、应用的内容等。

大规模后端应用

后端,根据规模,会有不一样的组成部分。一个简单的、较少用户量的小规模应用,在一台服务器上部署整个后端应用程序就足够了,而对于大规模的应用,往往部署在由几台乃至几千台服务器组成的集群中,对于这种,后端应用会根据 API 结构或者功能进行拆解,比如认证鉴权服务、订单服务、日志服务、数据库等。然后部署到不同的服务器上,每个服务也可以部署到多台服务器上用于提升性能、容灾容错。除后端服务外,大规模应用还有以下常见的几个组件:

  • load balancer(负载均衡器),用于把请求分给负载比较低的服务器上。
  • Api Gateway (API 网关),用于组合分散的 API,对外提供统一入口,也起到保护内部服务的作用。
  • Cache Service(缓存服务),用于缓存计算结果,提升性能。
  • Centrialized Service(中心管理服务),用于为服务器集群提供中心化的配置、同步和管理服务。
  • Message Service(消息服务),用于处理基于事件(或消息)的服务,支持持久化(即保存消息),常用于后端服务间的通信,或者实现 websocket 协议。

数据、算法工程师各司其职

上边介绍了后端应用的常见结构,对于现在的科技发展,单从业务逻辑上又能划分成独立的服务单元,比如

  • 大数据处理服务
  • 图像处理服务
  • 自然语言处理服务
  • 爬虫服务

由此也带来了细分的工作岗位,比如数据工程师,算法工程师,爬虫工程师等等。

你学会了吗?如果有问题,欢迎通过下方链接参与讨论。

提示

一系列的课程让你成为高级前端工程师。课程覆盖工作中所有常用的知识点和背后的使用逻辑,示例全部都为工作项目简化而来,学完即可直接上手开发!

即使你已经是高级前端工程师,在课程里也可能会发现新的知识点和技巧,让你的工作更加轻松!

《React 完全指南》课程,包含 React、React Router 和 Redux 详细介绍,所有示例改编自真实工作代码。点击查看详情。

《Vue 3.x 全家桶完全指南与实战》课程,包括 Vue 3.x、TypeScript、Vue Router 4.x、Vuex 4.x 所有初级到高级的语法特性详解,让你完全胜任 Vue 前端开发的工作。点击查看详情。

《React即时通信UI实战》课程,利用 Storybook、Styled-components、React-Spring 打造属于自己的组件库。

《JavaScript 基础语法详解》本人所著图书,包含 JavaScript 全面的语法知识和新特性, 可在京东、当当、淘宝等各大电商购买