第二章:概念介绍1. 软件的组成

软件的组成

这节课我们来介绍一下软件的组成。

了解软件的组成呢,后续我们在做开发的时候,心里就会有一个大致的框架,知道我们做一个软件需要做哪些工作。

软件的四个组成部分

软件主要由客户端、服务端、数据库和网络这几个部分组成。

当然也有一些纯客户端的软件,比如我们手机上的计算器。此类程序呢我们暂时先不考虑。我们希望最终带大家完成的,是一个包含网络的完整的软件系统。

以微信小程序为例,我们接触到的大部分软件呢,应该都是这个结构。

什么是客户端和服务端

客户端

客户端其实就是运行在用户机器上的程序。比如我们开发了一个微信小程序,假如说有1万个人在使用,那么就说明我们的这个客户端代码,在这1万个用户的手机上各自在运行着。

服务端

服务端呢,就是运行在服务器上的程序,通常是服务端的程序加数据库,并且只需要部署一份。

也就是说,无论有多少个用户访问,大家使用的客户端,都会通过网络连接到这一份服务端程序。

网络

网络很好理解,其实单机软件不需要网络,所以我们这里讲的是需要网络才能正常使用的软件。通常我们通过域名访问,域名会解析到一个IP,这个IP地址对应软件所在的服务器,然后我们就可以通过这个网络精确找到我们要访问的服务。

数据库

严格来讲,软件并不一定需要数据库,比如很多工具型软件,都没有数据库。但是几乎大部分商业软件,都是集成了数据库的。数据库用来存储数据,是软件中非常重要的一个组成,一个软件系统运行一段时间,数据库中的数据通常都非常重要,如果数据丢失,可能会导致非常严重的商业问题,所以我们将其也列了出来。

餐厅类比:理解软件运作

我们来举个简单的例子,假如我们把软件的组成类比为一家餐厅:

每个服务员他服务于一名客户。假如有客户进来要点餐,那么为他服务的这个服务员呢就是客户端

用户点餐后,服务员带着这个点餐的信息走向厨房。这个过程我们就可以理解为是:客户端将用户操作的数据通过网络发送到服务器。

厨房接收到用户的点餐信息之后开始做菜,并且会把每一道菜它的状态,也就是说这个菜是否已经做好、有没有被取消掉,记录到菜单中。这个就是服务器将数据存储到数据库的一个过程。

最后还需要查询这些数据,去给用户做结账。

💡 服务拥挤的真实原因

我们有的时候呢,会看到一些软件提示服务拥挤、请稍后再试。这个场景呢,我们就可以理解为点菜的客人太多了,厨房处理不过来。客户端和服务端呢,大致也是这样的一个对应关系。

软件架构图示

软件架构图示

从这个图里面呢,我们应该也可以看出来,如果我们想开发一款小程序的话,通常就需要:

  1. 开发一个客户端的代码
  2. 开发一个服务端的代码
  3. 数据库集成到服务端中
  4. 申请一个域名
  5. 搭建客户端到服务端的网络

这样,我们就可以完成一个完整的软件功能,并且给用户提供服务了。

⚠️

重要理解

客户端代码在每个用户的设备上运行,而服务端代码只需要部署一份。这就是为什么服务器性能很重要——它要同时为所有用户提供服务。

下一步

理解了软件的组成,接下来我们深入了解数据库:

👉 下一节:什么是数据库


💡

有疑问?

这些概念刚开始可能有点抽象,不用担心!随着课程深入,你会越来越清楚。

相关信息

💬 扫码了解更多信息

客服微信二维码

添加微信

知识星球二维码

加入知识星球