当前位置:首页 > 科技  > 软件

面试官:你的系统,是如何建模的?

来源: 责编: 时间:2024-05-16 09:10:05 91观看
导读一、战略、战术、战役首先 DDD 是一种软件设计方法,Domain-driven design (DDD) is a major software design approach. 来自维基百科。软件设计方法涵盖了;范式、模型、框架、方法论,主要活动包括建模、测试、工程、开

一、战略、战术、战役

首先 DDD 是一种软件设计方法,Domain-driven design (DDD) is a major software design approach. 来自维基百科。软件设计方法涵盖了;范式、模型、框架、方法论,主要活动包括建模、测试、工程、开发、部署、维护。来自维基百科的软件设计涵盖信息介绍。0Vq28资讯网——每日最新资讯28at.com

在 DDD 领域驱动设计中,常提到战略、战术,和一少部分会讲到战役。这3个词主要讲的是不同的开发阶段所需要完成的事项;0Vq28资讯网——每日最新资讯28at.com

  • 战略 - 建模;领域划分、界限上下文、核心领域
  • 战术 - 架构;工程结构、领域对象、领域服务、领域事件
  • 战役 - 编码;设计原则、设计模式

DDD 的战略、战术和战役设计相辅相成,战略提供系统的建模作为宏观指导,战术下面有N个战役,两者则关注具体的实现和编码落地。0Vq28资讯网——每日最新资讯28at.com

在维基百科中有不少 DDD 非常好的资料,其中一个是关于事件风暴的,讲解了执行战略设计中风暴模型的步骤。0Vq28资讯网——每日最新资讯28at.com

图片图片0Vq28资讯网——每日最新资讯28at.com

有了这基础认知,接下来我们通过《大营销项目》从需求到设计,一步步了解系统的领域驱动设计。0Vq28资讯网——每日最新资讯28at.com

二、产品需求

1. 产品诉求

如图,是一个复杂的营销抽奖场景玩法需求,涵盖了;活动配置、签到&奖励、活动账户、抽奖策略「责任链+规则树」、库存扣减、抽奖满N次后阶梯抽奖等。面对这样的复杂系统,非常适合使用 DDD 落地。0Vq28资讯网——每日最新资讯28at.com

图片图片0Vq28资讯网——每日最新资讯28at.com

分析需求;0Vq28资讯网——每日最新资讯28at.com

  1. 整体概率相加,总和为1或者分值计算,概率范围千分位
  2. 抽奖为免费抽奖次数 + 用户消耗个人积分抽奖
  3. 抽奖活动可给用户分配可抽奖次数,通过点击签到发放
  4. 活动延伸配置用户库存消耗管理,单独提供表配置各类库存 用户可用总库存、用户可用日库存
  5. 部分抽奖规则,需要抽奖n次后解锁,才能有机会抽取
  6. 抽奖完成增加(运气值/积分值/抽奖次数)记录,让用户获得奖品。
  7. 奖品对接,自身的积分、内部系统的奖品
  8. 随机积分,发给你积分。
  9. 黑名单用户抽奖,则给予固定的奖品。

2. 业务流程

依照于产品需求,在产品的 PRD 文档中还会绘制出业务流程图。产品的流程图会比较粗一些,研发后期需要根据产品的 PRD 文档做具体的设计。0Vq28资讯网——每日最新资讯28at.com

图片图片0Vq28资讯网——每日最新资讯28at.com

  • 产品经理会详细的介绍整个系统的功能流程和需要对接接口文档。
  • 以上就是以用户旅程为维度,从点击签到获得活动账户额度,再到一些列抽奖、抽奖策略、中奖结果和奖品发放的流程。

三、系统架构

如果首次承接的是一个新的系统,还需要对系统进行架构设计,是单体架构还是分布式架构,以及所要用到的技术栈。最好在提供好相关的落地案例和DDD脚手架。—— 没有这些东西,就想说点理论,就让团队用DDD写代码,那就是天方夜谭!你都没写出DDD代码,兄弟

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-88387-0.html面试官:你的系统,是如何建模的?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 停止使用花哨的技巧来编写优雅的代码吧!

下一篇: JavaScript如何优雅地告别Cannot read properties of undefined,Optional类体验

标签:
  • 热门焦点
Top
Baidu
map