首先 DDD 是一种软件设计方法,Domain-driven design (DDD) is a major software design approach. 来自维基百科。软件设计方法涵盖了;范式、模型、框架、方法论,主要活动包括建模、测试、工程、开发、部署、维护。来自维基百科的软件设计涵盖信息介绍。
在 DDD 领域驱动设计中,常提到战略、战术,和一少部分会讲到战役。这3个词主要讲的是不同的开发阶段所需要完成的事项;
DDD 的战略、战术和战役设计相辅相成,战略提供系统的建模作为宏观指导,战术下面有N个战役,两者则关注具体的实现和编码落地。
在维基百科中有不少 DDD 非常好的资料,其中一个是关于事件风暴的,讲解了执行战略设计中风暴模型的步骤。
图片
有了这基础认知,接下来我们通过《大营销项目》从需求到设计,一步步了解系统的领域驱动设计。
如图,是一个复杂的营销抽奖场景玩法需求,涵盖了;活动配置、签到&奖励、活动账户、抽奖策略「责任链+规则树」、库存扣减、抽奖满N次后阶梯抽奖等。面对这样的复杂系统,非常适合使用 DDD 落地。
图片
分析需求;
依照于产品需求,在产品的 PRD 文档中还会绘制出业务流程图。产品的流程图会比较粗一些,研发后期需要根据产品的 PRD 文档做具体的设计。
图片
如果首次承接的是一个新的系统,还需要对系统进行架构设计,是单体架构还是分布式架构,以及所要用到的技术栈。最好在提供好相关的落地案例和DDD脚手架。—— 没有这些东西,就想说点理论,就让团队用DDD写代码,那就是天方夜谭!你都没写出DDD代码,兄弟
本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-88387-0.html面试官:你的系统,是如何建模的?
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com
上一篇: 停止使用花哨的技巧来编写优雅的代码吧!
下一篇: JavaScript如何优雅地告别Cannot read properties of undefined,Optional类体验