《Effective C#》读书笔记——条目28:提供粗粒度的互联网API<使用C#表达设计>

简介:

在使用Web服务、.NET远程调用或给予Azure的程序时,最耗时的就是与远程服务器之间传输过程。如果只是简单的将本地API封装一下,就变成远程使用的API,这样做功能上不会有问题,但是效率低下。API的粒度越细所花费在等待数据返回的额外事件也就越多。

  在创建基于Web的服务时,客户端和服务器的通信过程应该向发送传真一样:客户端可以独立、不需要与服务器取得联系的情况系下工作一段时间。然后在一次通信所需要的所有数据就位之后,再让客户端一次性把所有信息发送给服务器。服务器端也应该如此:将数据从服务器发送给客户端时,应该一次性的发送所有内容,让客户端能完成当前所有的任务。

  现在让我们做一个假设:该系统仅有一个服务端,还有超过100万的客户。假设每个客户在去年一年中平均进行十五次订购。每个电话销售都在订购过程中操作一个客户端,且在接听电话的过程中需要查询或创建客户。我们该如何设计出一个最有效的客户端和服务器端传递的一系列对象呢?在这里一次性的将每个客户和每个订单发给客户端是不现实的:100万客户和1500万的订单记录对应的数据实在是太多了。

  设计与远端计算机通信的Web服务时,我们希望同时降低通信的频率以及每次通信时传递的数据量。这两个目标是鱼和熊掌不可兼得的,我们必须在这二者之间取得平衡。我们应该进尽量不要走向两个极端,但可适当选择较少通信次数,并尽量一次传输更多的数据。

 

本文转自gyzhao博客园博客,原文链接:http://www.cnblogs.com/IPrograming/archive/2013/03/31/EffectiveCSharp_28.html ,如需转载请自行联系原作者
相关文章
|
安全 Java API
互联网并发与安全系列教程(15) - 基于Zuul实现API网关
互联网并发与安全系列教程(15) - 基于Zuul实现API网关
66 0
|
1月前
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
64 7
|
1月前
|
API C#
异步轮询 Web API 的实现与 C# 示例
异步轮询 Web API 的实现与 C# 示例
82 0
|
3月前
|
开发框架 人工智能 自然语言处理
基于ChatGPT的API的C#接入研究
基于ChatGPT的API的C#接入研究
|
4月前
|
JSON API 网络架构
揭秘!Python Web框架下的RESTful API设计,为何成为互联网新宠?
【7月更文挑战第24天】在互联网快速发展背景下,RESTful API以其简洁性和可扩展性成为应用间通信的首选。REST强调资源为核心,利用HTTP方法处理CRUD操作,促进前后端分离,提高开发效率。Python的Flask框架支持轻松构建RESTful API,通过路由、请求和响应机制实现。示例代码展示了如何使用Flask创建、读取和更新用户信息。Python Web框架因其丰富的工具和库,简化RESTful API开发,适应微服务架构需求,在互联网发展中扮演重要角色。
56 3
|
6月前
|
JSON API C#
C# 通过阿里云 API 实现企业工商数据查询
C# 通过阿里云 API 实现企业工商数据查询
|
6月前
|
JSON 文字识别 算法
C# 通过阿里云 API 实现企业营业执照OCR识别
C# 通过阿里云 API 实现企业营业执照OCR识别
|
安全 应用服务中间件 API
互联网并发与安全系列教程(14) - 基于Nginx实现API网关
互联网并发与安全系列教程(14) - 基于Nginx实现API网关
121 0
|
存储 安全 API
互联网并发与安全系列教程(11) -OAuth2.0协议实现API设计
互联网并发与安全系列教程(11) -OAuth2.0协议实现API设计
81 0
|
编解码 安全 Java
互联网并发与安全系列教程(10) -基于URL转码方式实现API设计
互联网并发与安全系列教程(10) -基于URL转码方式实现API设计
56 0