- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
本文由简悦SimpRead转码,原文地址
上一讲,我们介绍了如何设计秒杀的系统架构。
在系统中,我们通常把完整的购物流程划分为下单前和下单后。下单是由用户在商城发起的,下单
后订单涉及关单、支付、退款、筛单、投递、售后等流程。
其中,关单涉及库存系统,支付流程涉及支付系统,退款流程涉及、支付和财务系统,筛单涉及风
控系统,投递涉及物流和仓储系统,售后涉及售后系统。
说了这么多,你有什么发现没?仅仅一个订单的完整流程,就涉及好几个系统。
此时,就有一个问题产生了:我们该如何划分各个系统的职责边界呢?也就是说,当订单数据被多个系
统用到时,订单数据到底由呢?
这就是我们本讲要解决的问题——DDD原理及秒杀系统领域模型。
注:本讲结尾还有秒杀系统领域建模的思维导图哦,可以让你一目了然。
DDD原理及作用
什么是DDD?
DDD(DomainDriveDesign,领域驱动设计)是一种软件设计方法,是指在软件设计的过程中始终围
绕领域来构建模型。构建领域模型的过程就叫“领域建模”。
怎么理解呢?
这里的领域,我们可以理解成业务对象。
举个例子:一个订单的业务逻辑总是围绕订单数据来实现的,比如下单、取消订单、订单退款、订
单履约等业务逻辑。而订单数据在面向对象编程中的实体是订单对象,也就是订单的业务对象。
领域模型就是业务对象模型,是描述业务功能实现的对象模型,它是对业务对象协作关系和业务执行逻
辑的一种抽象提炼。
那在一个业务系统中可以有多少领域呢?在一个遵循领域驱动设计的业务系统中,可以有多个领域。但
是,应当有且只有一种领域,因为这样它的职责才非常清晰。另一些非领域,我们统称为子领
域。
现在你是不是理解了领域模型是什么呢?而DDD就是为了解决各个业务系统的职责划分,围绕业务对
象而进行模型建构。
具体它是怎么做的呢?
DDD的作用
DDD将领域模型分为4层,如下图所示:
图1领域驱动设计风格的架构草图(来自DDDSample官网)
这4层分别是:
1.Interfaces用户界面层,有时候也叫呈现层,比如前端或者客户端;
2.Application应用层,负责给用户界面层提供业务应用的业务逻辑,如商城接口服务;
3.Domain领域层,负责某个领域的具体业务逻辑,如的订单;
4.Infrastructure基础设施层,如MQ、MySQL、Redis等。
有了这样的层级划分,加上一些划分层级的规则,我们就能快速找出各个系统的业务边界,将系统的职
责划分清楚,以免逻辑难以。
比个接口是提供给运营前端用的,结果在划分职责的时候将其划分到商城API服务里了,这
样可能会直接给用户,不仅导致逻辑,还存在严重风险。如果按照DDD的分层模型来划
分,我们就能将API服务和管理的职责划分清楚,避免此类问题。
实际上,现代软件系统往往功能复杂,需要微服务化,以便进行长期。而在微服务架构中,由于需
要将业务功能拆分成多个微服务,就涉及领域划分的问题。如果没有DDD的理论指导,我们很可能将
某个功能,划分到错误的微服务里,比如,将订单功能划分到物流服务里。
如果你想了解有关DDD
文档评论(0)