关于领域驱动和微服务设计中,创建对象(实体)的花销问题

2021-08-31 17:16:54 +08:00
 yeqiu

例如在微服务的设计中,某一个服务公开了一个对象 book,有五个属性( id 、name 、author 、pagecount 、Producer )而某一个应用层仅需要两个属性( id 、name ),也是要获取整个 book 实例的,那获取 author 、pagecount 、producer 这三个属性的花费(数据库、内存、cpu )岂不是白白浪费了?

我可以想到的解决方案是,给 book 增加一个 viewmodel,例如 book_selectoption 仅返回两个属性( id 、name )。但有两个问题,1 、大概率会有很多 viewmodel,一个一个手动处理太麻烦了。2 、在编写服务的时候,不可能事先知道会有哪些 viewmodel,只能在造成了后果之后才亡羊补牢。

ddd 设计中应用层和领域层之间使用 dto 传输数据,也存在一样的问题。

小伙伴们,你们是怎么考虑的?

629 次点击
所在节点    问与答
1 条回复
neilq
2021-09-02 10:57:30 +08:00
个人观点,没有必要,1kb 能放 512 个汉字,性能瓶颈一定不是在这里

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/799090

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX