你需要知道的五种常用的编程模型

分层模型分层模型应该是我们编程里面最常用的模型,尤其是web开发里面,会有表示层、业务层和持久化层以及DB层,在表示层主要是web页面,业务层主要是编写核心的业务代码,持久化层主要是负责保存数据 。通过分层将职责分开,上一层调用下一层的接口 。反过来,下层的设计不会依赖上层 。

你需要知道的五种常用的编程模型

文章插图
 
和分层模型比较关联的MVC模型,也是web开发中常用的,其中M是数据mode定义,也就是定义业务类,V是视图,用于数据展现,C是controller控制,编写业务逻辑 。
你需要知道的五种常用的编程模型

文章插图
 
 
管道过滤器管道过滤器主要用于数据处理,源数据经过一系列的过滤器处理后发送到sink 。这里的过滤器不仅限于过滤,还可以用于数据处理 。
你需要知道的五种常用的编程模型

文章插图
 
不同的过滤器实现相同的接口,这种松耦合的方式可以随意将不同过滤器组合到一起 。但由于链路比较长,延迟会比较高 。
客户端服务器这种方式主要是客户端通过网络连接到服务器,客户端通过HTTP或者RPC的方式,请求服务端,并等待服务端返回 。
你需要知道的五种常用的编程模型

文章插图
 
这种模式由于服务端是中心化的,性能瓶颈在服务端 。
事件驱动模型事件驱动也是最近两年比较流行的概念,服务之间通过事件驱动执行 。它是一种更加松耦合的方式,事件的触发者甚至不知道这个事件会被谁去消费,通常扔到消息队列里面 。
你需要知道的五种常用的编程模型

文章插图
 
事件的消费者通过监听关心的事件,触发执行操作 。我们熟知的knative 以及FaaS 等很多地方都使用了事件触发,譬如我们通过 FaaS 图片处理,每当上传一个图片到对象存储就会触发一次事件,执行对应的函数 。
微服务微服务也是这两年比较流行的概念,尤其是云原生(微服务、容器化、Devops)的兴起 。微服务主要是解决单体架构的弊端 。将单个庞大的服务拆分成多个高内聚、低耦合并且职责单一的微服务 。
你需要知道的五种常用的编程模型

文章插图
 
服务之间通过API 相互调用,外部通过API gateway 转发请求 。并且每个服务都可以独立部署和发布 。

【你需要知道的五种常用的编程模型】


    推荐阅读