V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yeqiu
V2EX  ›  问与答

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

  •  
  •   yeqiu · 2021-08-31 17:16:54 +08:00 · 788 次点击
    这是一个创建于 1211 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如在微服务的设计中,某一个服务公开了一个对象 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 传输数据,也存在一样的问题。

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

    1 条回复    2021-09-02 10:57:30 +08:00
    neilq
        1
    neilq  
       2021-09-02 10:57:30 +08:00
    个人观点,没有必要,1kb 能放 512 个汉字,性能瓶颈一定不是在这里
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5889 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 02:23 · PVG 10:23 · LAX 18:23 · JFK 21:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.