前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一周技术学习笔记(第90期)-分享两个技术边界的问题

一周技术学习笔记(第90期)-分享两个技术边界的问题

作者头像
王新栋
发布2022-12-01 15:30:42
1.1K0
发布2022-12-01 15:30:42
举报
文章被收录于专栏:程序架道程序架道

第一个。在订单数据表里面会有个最终优惠后的订单金额,那么这个计算优惠金额是应该订单服务来做吗?

商品的原价是多少,满减优惠了多少,特价减免了多少,优惠后的计算结果肯定是订单的一部分,也需要保存在订单服务里面。那计算优惠金额应该是订单服务来做吗。

这里,我们不难看出涉及有订单服务和促销服务,两个服务。

他们都是基础服务,基础服务是最底层的服务。各自提供了自身业务领域内的业务功能,订单服务提供跟订单数据相关的服务,比如订单列表,订单详情。促销服务提供跟促销相关的服务,比如促销规则,营销结果价格。

回到开头的那个问题,计算最终的优惠后的金额,是订单服务来做还是促销服务来做。

促销服务来做。

促销服务,作为一个独立的物理上的业务域他拥有各种各样的优惠规则和数据,如果把计算优惠最终的订单金额功能放到订单服务里面去,促销服务就要把这些很多种促销规则发送给订单服务,不但调用成本高,而且那些促销规则发生改变的时候势必会影响订单服务的内部实现。

服务的数据和职责要一致,谁拥有信息,谁就要负责提供相应的功能。

所以,促销服务负责促销规则的维护,以及对应的优惠计算功能。订单服务负责优惠结果数据的落地和后续的查询功能。

另外一个技术边界的问题是订单和商品。

我们都知道订单数据里面会有商品ID,那么当其它系统需要商品详情的时候,订单服务需要负责提供吗?

不会提供。这不是订单服务的职责,还是那句话,服务的数据和职责要一致,谁拥有信息,谁就要负责提供相应的功能。

如果需要订单的商品详情信息,可以在上层的应用服务里面去处理,通过聚合订单服务和商品服务来实现。

--《架构实战案例解析》

----END----

这里记录,我每周碰到的,或想到的,引起触动,或感动的,事物的思考及笔记。不见得都对,但开始思考记录总是好的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序架道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档