您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

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

时间:2021-08-27 10:37:03  来源:  作者:云技术趣谈

分层模型

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

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

 

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

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

 

 

管道过滤器

管道过滤器主要用于数据处理,源数据经过一系列的过滤器处理后发送到sink。这里的过滤器不仅限于过滤,还可以用于数据处理。

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

 

不同的过滤器实现相同的接口,这种松耦合的方式可以随意将不同过滤器组合到一起。但由于链路比较长,延迟会比较高。

客户端服务器

这种方式主要是客户端通过网络连接到服务器,客户端通过HTTP或者RPC的方式,请求服务端,并等待服务端返回。

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

 

这种模式由于服务端是中心化的,性能瓶颈在服务端。

事件驱动模型

事件驱动也是最近两年比较流行的概念,服务之间通过事件驱动执行。它是一种更加松耦合的方式,事件的触发者甚至不知道这个事件会被谁去消费,通常扔到消息队列里面。

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

 

事件的消费者通过监听关心的事件,触发执行操作。我们熟知的knative 以及FaaS 等很多地方都使用了事件触发,譬如我们通过 FaaS 图片处理,每当上传一个图片到对象存储就会触发一次事件,执行对应的函数。

微服务

微服务也是这两年比较流行的概念,尤其是云原生(微服务、容器化、Devops)的兴起。微服务主要是解决单体架构的弊端。将单个庞大的服务拆分成多个高内聚、低耦合并且职责单一的微服务。

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

 

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



Tags:编程模型   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
分层模型分层模型应该是我们编程里面最常用的模型,尤其是web开发里面,会有表示层、业务层和持久化层以及DB层,在表示层主要是web页面,业务层主要是编写核心的业务代码,持久化层主...【详细内容】
2021-08-27  Tags: 编程模型  点击:(635)  评论:(0)  加入收藏
我承认这篇文章有标题党的嫌疑,看完这篇文章并不会让你月薪两万。如果想月薪两万甚至更多,并不是靠一篇文章,一本书,一个项目来实现的。但是一个合格的程序员对响应式编程多少都...【详细内容】
2021-07-29  Tags: 编程模型  点击:(145)  评论:(0)  加入收藏
▌简易百科推荐
1. 前言了解响应式编程,首先我们需要了解函数式操作和Stream的操作,下面我们简单的复习一下喽。1.1 常用函数式编程函数式接口中我们先来回顾一下Java中的函数式接口。常见的...【详细内容】
2022-07-15  二哥学Java    Tags:编程   点击:(1)  评论:(0)  加入收藏
在本文中,我们将学习如何使用 Next.js、 Prisma、 Postgres 和 Fastify 构建一个 Full-stack 应用程序。在本文中,我们将学习如何使用 Next.js、 Prisma、 Postgres 和 Fastif...【详细内容】
2022-07-12  qaseven    Tags:全栈   点击:(9)  评论:(0)  加入收藏
好的软件开发网站有哪些?做软件开发哪些网站能提供帮助呢?这些很多做软件开发的小伙伴都会问到的问题。007出海全球社交流量导航网站,整合了多方出海跨境网站资源,为你介绍出海...【详细内容】
2022-07-08  Chuhai007    Tags:软件开发   点击:(10)  评论:(0)  加入收藏
我们用monkey做压力测试后,会保存一个monkey日志,那如果想快速的分析日志中有哪些异常,我们可以用批处理工具进行快速的筛查,我们一起来看看吧。先编写个小脚本,然后修改为bat后...【详细内容】
2022-07-08  溪流涌动    Tags:monkey   点击:(13)  评论:(0)  加入收藏
白盒测试落地实践分为两个大方向,一个是静态分析,一个是动态分析,当然啦,也可以叫做静态测试和动态测试。那我们如何高质量保效率的做好白盒测试呢?Parasoft已经为您准备好了成熟...【详细内容】
2022-07-08  Parasoft中国    Tags:白盒测试   点击:(11)  评论:(0)  加入收藏
Altium Designer 自带脚本功能的开发项目,可以调用官方AD API接口对原理图或者PCB进行自动操作,本文主要分享开发的流程,和一些基本的概念信息,本文介绍的脚本工具例子可以用在P...【详细内容】
2022-07-07  电子工程师伟哥    Tags:Altium Designer   点击:(21)  评论:(0)  加入收藏
一、目录介绍 前置知识点 NIO Netty 的核心组件 Channel Callback Future 和 Promise 事件和 ChannelHandler Hello World二、前置知识点1、NIO首先我们需要回顾一...【详细内容】
2022-07-06  架构师jickly    Tags:聊天系统   点击:(16)  评论:(0)  加入收藏
1.事件流事件流是对事件执行过程的描述,了解事件的执行过程有助于加深对事件的理解,提升开发实践中对事件运用的灵活度。2.捕获和冒泡捕获阶段是【从父到子】的传导过程,冒泡阶...【详细内容】
2022-07-06  金乾坤    Tags:API   点击:(13)  评论:(0)  加入收藏
刷盘策略CommitLog的asyncPutMessage方法中可以看到在写入消息之后,调用了submitFlushRequest方法执行刷盘策略:public class CommitLog { public CompletableFuture<PutMe...【详细内容】
2022-07-06  Java码农之路    Tags:RocketMQ   点击:(16)  评论:(0)  加入收藏
最近读了本好书-《深度学习推荐系统》,读完不觉全身通畅,于是就有了写这篇文章的想法,把自己的理解和总结分享给大家。 本文将按照从算法到工程的顺序,先介绍一下推荐系统整体...【详细内容】
2022-07-05  InfoQ    Tags:推荐系统   点击:(22)  评论:(0)  加入收藏
站内最新
站内热门
站内头条