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

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

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 协议。

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

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

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

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

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

>> 在 B 站参与讨论