作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想这个问题有点繁琐,但我想要一些反馈。目前我正在通过 dtos 从 Web 服务构建 poco 类对象。我预加载所有标量值,并延迟加载所有集合/数组,当然包括二进制文件。
显然,我这样做是为了缩短响应时间,因为这个库是网络应用程序的驱动力。但是,为了保持服务的可重用性,我将每个 GET 函数规范化为单个操作 (S)。因此,例如,从事件目录中获取用户信息是一个(例如 displayName 和 department 等标量值),而获取此人的直接下属是一个单独的、延迟加载的操作。那么会发生什么,当您构建一个对象时,会多次调用该服务来构建该对象。有些页面只需要基本信息,有些页面会调用更多的延迟加载方法甚至整个对象。我看不出这有什么问题,但我想知道(工作中的其他人已经在批评)这是否会成为问题?
我的问题是,我做错了吗?不过,所有输入都值得赞赏。谢谢
最佳答案
您需要取得平衡的是进行 HTTP 调用的开销与传输大型请求或响应的开销。
没有银弹。例如,如果调用是通过 LAN 从一台服务器到另一台服务器进行的,那么更大的有效负载并不是什么大问题。如果调用是从移动设备进行的,那么修剪有效负载可能会有很多好处。
开始时最好的平衡是将网络服务的方法视为工作流中的步骤。想想“如果我想实现X,我需要什么数据?”;尝试围绕这些想法确定您的请求响应范围,然后分析结果。这只是一个起点,但总比从“一个方法适用于每一个微小的细节”或“一个方法可以解决所有问题”开始要好。
关于c# - 我应该打更频繁、更小的电话吗?还是不太频繁的大电话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11398656/
我是一名优秀的程序员,十分优秀!