在大型数据集上专门化或推广传输对象和操作?

时间:2012-01-30 14:03:17

标签: client-server data-access

我有一个数据密集型应用程序,速度至关重要,网络流量应保持尽可能低 在不同查询中返回的元素集通常是重叠但不相同。
如果我决定使用最具体的查询和DTO-s优化所有请求,则很可能操作和类型的数量将快速增长,并且它们都不可重用。另一方面,泛化提供了以失去性能为代价重用代码的机会 除了使用常识和测量之外,是否有任何良好做法或指导方针来解决这个问题?

1 个答案:

答案 0 :(得分:1)

在我开始转向专业查询的过程中 如果你喜欢你的后端是通用的,你可以做什么,你可以从一个对象中挑选属性来序列化。
通过这种方式,您可以保持沉重的后端OO设计,具有极佳的可重用性,但网络占用空间小。 这通常使用JSON完成。

如果您遵循分层架构和OO原则会发生什么事情,那么您将随机播放大量数据。例如,如果您的业务层应该从持久层中明确切割,则必须填充所有数据字段。所以我要做的就是忘记干净的切割,让db-connected持久性对象在层上漂移,让我使用延迟加载,只有在序列化到客户端之前才放弃它。