戏说领域驱动设计纠偏篇(十一):如何纠正设计偏差?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2766个文字,预计阅读时间需要12分钟。
今日儿写这个题目,觉得有点大,不过还是得硬着头皮整一篇(我怕您看完就揍我了)。一方面是源于经验分享,另一方面是为了后面我们讲案例时做好铺垫。好的代码需要关注的要点其实很多,实际上也确实如此。
今儿写这个题目胆子有点大,不过还是得冒险整一篇(我怕您看完了骂我),一是出于经验分享,另外则是为了后面我们讲案例的时候做好铺垫。好的代码需要注意的事项其实挺多的,您真让我一骨脑儿都列出来可能也差点意思,所以遵照我们常态化歪楼的习惯,我是想到哪写到哪儿。
我没事儿的时候就喜欢看别人写的文章,也喜欢看书,收获还是挺多的,不过岁数大了忘性也大,记不住。可有一个事情我记得倍儿清楚:咱们搞技术的尤其是后端开发都知道一类对象叫视图模型(View Object简称VO),一说VO,大多数文章给的概念就是“后端传向前端,用于承载需要在页面上显示的信息的实体或对象(反方向是前端传向后端用于存储的信息)”。概念虽然简单,可是和我的想法就不一样,谁叫咱这人个色呢,您听我给您唠唠。
我所认为的视图相对来说要广义一点:前面您所认为的自然是没问题;还有一种(咱们以Java为例啊)我来举例说明:订单的服务需要调用客户服务来查询客户信息“CustomInfo”,这里面的“CustomInfo”就是视图模型。您肯定暴起反对:搞笑呢吧?“CustomInfo”是“DTO(数据传输对象)”。这种说法当然没错了,但DTO这个说法太广义面且太模糊了。常用的数据实体也算是一种DTO,他承载了需要存储和从数据库查询返回的数据;前端传向后端的也是DTO,承载了用户的输入。所以您平常老是用DTO这个说法其实真的不够准确。那为什么说服务间相互传的数据是VO呢?比如您去相亲,对方给您的印象(注意:印象不仅是你主动获取的,还包括对方传给你的,就跟两个函数一样你调用我我调用你)比如长相、谈吐等这些是对方想让您知道的(别反对,女人画起妆来你就不知道她到底长什么样)关于其自身属性的部分信息,当然还有一部分是您从对方身上获得的信息,所谓的“印象”是两种信息的集成,其实就是信息视图。所以您调用下游服务时对方返回给你的就是这个下游服务的视图也就是下游服务想要展示给你的内容。
本文共计2766个文字,预计阅读时间需要12分钟。
今日儿写这个题目,觉得有点大,不过还是得硬着头皮整一篇(我怕您看完就揍我了)。一方面是源于经验分享,另一方面是为了后面我们讲案例时做好铺垫。好的代码需要关注的要点其实很多,实际上也确实如此。
今儿写这个题目胆子有点大,不过还是得冒险整一篇(我怕您看完了骂我),一是出于经验分享,另外则是为了后面我们讲案例的时候做好铺垫。好的代码需要注意的事项其实挺多的,您真让我一骨脑儿都列出来可能也差点意思,所以遵照我们常态化歪楼的习惯,我是想到哪写到哪儿。
我没事儿的时候就喜欢看别人写的文章,也喜欢看书,收获还是挺多的,不过岁数大了忘性也大,记不住。可有一个事情我记得倍儿清楚:咱们搞技术的尤其是后端开发都知道一类对象叫视图模型(View Object简称VO),一说VO,大多数文章给的概念就是“后端传向前端,用于承载需要在页面上显示的信息的实体或对象(反方向是前端传向后端用于存储的信息)”。概念虽然简单,可是和我的想法就不一样,谁叫咱这人个色呢,您听我给您唠唠。
我所认为的视图相对来说要广义一点:前面您所认为的自然是没问题;还有一种(咱们以Java为例啊)我来举例说明:订单的服务需要调用客户服务来查询客户信息“CustomInfo”,这里面的“CustomInfo”就是视图模型。您肯定暴起反对:搞笑呢吧?“CustomInfo”是“DTO(数据传输对象)”。这种说法当然没错了,但DTO这个说法太广义面且太模糊了。常用的数据实体也算是一种DTO,他承载了需要存储和从数据库查询返回的数据;前端传向后端的也是DTO,承载了用户的输入。所以您平常老是用DTO这个说法其实真的不够准确。那为什么说服务间相互传的数据是VO呢?比如您去相亲,对方给您的印象(注意:印象不仅是你主动获取的,还包括对方传给你的,就跟两个函数一样你调用我我调用你)比如长相、谈吐等这些是对方想让您知道的(别反对,女人画起妆来你就不知道她到底长什么样)关于其自身属性的部分信息,当然还有一部分是您从对方身上获得的信息,所谓的“印象”是两种信息的集成,其实就是信息视图。所以您调用下游服务时对方返回给你的就是这个下游服务的视图也就是下游服务想要展示给你的内容。

