当前位置: 首页 > news >正文

建网站优势网站建设古典风格

建网站优势,网站建设古典风格,做网站正规公司,网站 网页数量大家好#xff0c;我是失业在家#xff0c;正在找工作的博主Jerry。作为一个.Net架构师#xff0c;就要研究编程艺术#xff0c;例如SOLID原则和各种设计模式。根据这些原则和实践#xff0c;实现了一个更简洁更低耦合的RPC#xff08;Remote Procedure Calls#xff09…大家好我是失业在家正在找工作的博主Jerry。作为一个.Net架构师就要研究编程艺术例如SOLID原则和各种设计模式。根据这些原则和实践实现了一个更简洁更低耦合的RPCRemote Procedure Calls框架名叫MediatRPC。一、MediatR 编程思想SOLID的总原则是开闭原则(Open Closed Principle)一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭。其它原则和设计模式都是为了实现和体现这个总原则。例如我们熟悉的工厂模式就很好的实现了开闭原则(Open Closed Principle)。但是我认为MediatR对这个总原则的实现更完美。在MediatR中任何新增功能都可以通过新增Resquest消息和Handler处理器的方式实现甚至可以在不改变原有Notification消息的基础上新增Handler处理来实现功能扩展。新版本还增加了对StreamRequest的支持使其可以通过相同的方式对请求数据流进行处理实现和GRPC类似的流式数据处理。MediatR对这个总原则的实现之所以更好是因为它没有让程序员采用传统的面向接口的编程方式来对功能进行抽象也就是通过接口方法来代表功能。而是另辟蹊径采用消息来代表功能把功能抽象为对消息的处理过程。很巧妙的避免了接口类粒度难以定义和接口方法签名耦合的问题。MediatR让程序员从面向接口编程转变为面向消息编程。化繁为简我认为这是一个很大的编程思想的进步。二、MediatR 和 Grpc对比MediatR还提供各种自定义AOP功能和异常处理功能是个很优秀的过程/功能调用Procedure Calls框架。从过程/功能调用的角度来讲它比GRPC更简洁更低耦合。因为GRPC本质上还是传统的对服务器端功能的接口抽象也就是Proto文件的作用。这导致了客户端不但要知道服务端方法的接口参数也要知道方法所在接口和方法名称才能调用该功能。此外如果客户端只想调用服务端的一个方法也必须要引用整个Proto文件或者对Proto文件进行删减增加风险。而这些高耦合的问题在MediatR中都不存在因为在MediatR中消息就代表功能服务端只要接收到消息就执行对应处理过程来实现功能。客户端想调用那个功能只要发送相应的消息即可。除了MediatR不能远程Remote以外。三、如何实现MediatRPC那么我们就给MediatR加上远程通讯的功能。这就涉及到远程通讯的问题目前最先进最时髦的远程通讯协议莫过于QUIC了。它是HTTP3的通讯实现基础基于UDP协议比TCP协议减少了握手次数提高了传输效率提高了传输安全性等总之就是两个字先进。而.Net 中的System.Net.Quic是微软实现的跨平台QUIC的.Net封装程序集。微软其实是用C实现的QUIC据说其性能受到了业界好评。本文就使用System.Net.Quic为MediatR增加远程发送和接收消息的功能。从而实现真正的RPC起名叫MediatRPC。四、MediatRPC实现效果 我们先来看一下实现结果首先启动服务端客户端远程调用代码如下Console.WriteLine(MediatRPC Client Running...); Console.WriteLine();MediatRpcClient mediatRpcClient await MediatRpcClient.Build();var responseMessage1 await mediatRpcClient.Send(new TestRequestMessage() { Message Hello MediatRPC 1 }); Console.WriteLine(JsonSerializer.Serialize(responseMessage1));Console.WriteLine();var responseMessage2 await mediatRpcClient.Publish(new TestNotificationMessage() { Message Hello MediatRPC 2 }); Console.WriteLine(responseMessage2);Console.ReadKey();MediatRpcClient是我实现的客户端对象它分别向服务端发送了两个消息一个是用Send发送了IRequest消息并打印返回消息。另一个是用Publish发送了INotification消息打印是否执行成功。消息发送和接收方式和MediatR一摸一样, 因为方法签名直接抄袭了MediatR。宗旨就是怎么使用MediatR就怎么使用MediatRPC。服务端处理Request消息的Handler代码如下public class TestRequestMessageHandler : IRequestHandlerTestRequestMessage, TestResponseMessage{public TestRequestMessageHandler(){}public async TaskTestResponseMessage Handle(TestRequestMessage request, CancellationToken cancellationToken){TestResponseMessage testResponseMessage new TestResponseMessage();testResponseMessage.Message $ACK:{request.Message},{DateTime.Now.ToString(HH:mm:ss)};return testResponseMessage;}}启动客户端Request 和 Response Package是我封装的消息包参考了Http包的实现也分为Headers和Body。Request 包将原来Http包的请求路径改为MediaRMethod让服务端知道如何处理这个消息。调用日志每一步都打印的很清楚不再赘述。因篇幅关系具体的服务端和客户端通讯实现方式将在下一篇展开明天就会发布也会发布源代码。五、找工作▪ 博主有15年以上的软件技术实施经验Technical Leader专注于微服务Dapr和云原生K8s软件架构设计、.Net Core、Java开发和Devops构建发布。▪ 博主10年以上的软件交付管理经验Project Manager Product Ower致力于敏捷Scrum项目管理、软件产品业务需求分析和原型设计。▪ 博主熟练配置和使用 Microsoft Azure云。▪ 博主为人诚恳积极乐观工作认真负责。 我家在广州也可以去深圳工作。做架构师、产品经理、项目经理都可以。有工作机会推荐的朋友可以加我微信 15920128707微信名字叫Jerry。
http://www.pierceye.com/news/214390/

相关文章:

  • 做网站纸张大小滨州网站建设模板建设
  • wordpress建站位置被跨境电商骗了怎么办
  • 巫山网站建设哇塞fm网站维护
  • 南宁百度网站推广计算机网站建设与推广
  • 汉中网站建设开发做微网站是订阅号还是服务号号
  • 中国商城网站建设h5响应式网站模板下载
  • 建设个商城网站需要多少钱网上商城系统平台官网
  • 软件开发与网站开发的区别最新源码
  • 电子商务网站建设策划中国网站建设公司排行
  • 网站的推广方式组合经验丰富的网站制作公司
  • 北京企业网站建设php制作公司网站首页
  • 保险网站建设网站 为何要 备案
  • 南宁网站设计可以找我wordpress 主题
  • 池州家居网站建设怎么样h5链接是什么意思
  • 网站添加站长统计代码凡科建站登录入口官方正版
  • 淮北做网站的公司有哪些手机网站设计只选亿企邦
  • 网站服务器打不开爱站工具网
  • php网站接口开发wordpress添加作者
  • 网站建设漂亮的模板创新网站建设工作
  • 国内做服装的网站有哪些方面wordpress邮件订阅
  • 建立个人网站主题安徽省建设厅网站打不开
  • 做互联网小程序 和网站有没有前景广州网站制作教程
  • 新网网站内部优化wordpress菜单图标
  • 深圳市龙华区住房和建设局网站网站开发连接数据库
  • 做张家界旅游网站多少钱做网站的步骤 优帮云
  • 怎么建立一个好公司网站网站模版参考
  • 成都大型网站设计公司怎么快速建设小型外贸网站
  • 建设工程规范在哪个网站发布河南网络推广培训
  • 深圳宝安上市公司网站建设报价石家庄教育学会网站建设
  • 上海 专业网站建设网络推广公司收费标准