栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

DDD专题系列(三)---战略设计(识别问题域, 提炼领域知识)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

DDD专题系列(三)---战略设计(识别问题域, 提炼领域知识)

二、战略设计(识别问题域, 提炼领域知识)

​ 这是战略设计的第二部分,我们将会花费大量的时间去讲关于如何更好地去拆解业务,提炼领域知识。那么这篇文章的关键词就是, 提炼领域知识。

上篇文章中我们提到了将需求做成故事集册,但是这个故事的描述是非常粗糙的,下面我将用具体的方法从细节中提炼更细化的需求。

​ 提炼领域知识:

  1. 我们需要从上文中的问题域出发,细化需求。
  2. 后面这些领域知识将会被进一步转化成"代码表达"

当然这里同样提供一款适用的模板:

英文表达中文表述
Given给定的条件
When实际的条件
Then期望的结果

老规矩,我这里例举一个例子,这里是借鉴别人在电商领域的例子:

王五的用户故事:  

(1)作为一名销售经理,

(2)我希望为订单设置合适的配送的总额阈值。
    
(3)以便于促进平均订单总额的提高

这里首先放一个上文中提到的用户故事,这个需求其实大部分人都接触过, 每次我们在美团等平台上点外卖时,在下面的购物车中都会提示的满减优惠。 跟着这个用户所提出的问题域,我们更细化地分出了多种场景:

场景一:  订单满足配送免费的总额阈值

Given: 配送免费的总额阈值设置为100元人民币

And:   我目前的购物车总计90元人民币

When:  我将一个价格为10元人民币的商品添加到购物车

Then:  我将获得配送免费的优惠
场景二:  订单不满足配送免费的总额阈值
    
Given: 配送免费的总额阈值设置为100元人民币
    
And:   我目前的购物车总计90元人民币
    
When:  我将一个价格为5元人民币的商品添加到购物车
    
Then:  我应该被告知如果我多消费5元人民币,就能够享受配送免费的优惠

​ 从上面的模板中,其实不需要严格按照这种格式,只是为了让大家更好地理解,把这个问题(或功能)拆分成多种情况,分析出用户可能产生的所有情况。然后针对这种可能产生的行为,系统将给出对应的对策。如果按照这个来拆分,一个功能下或问题下将会有非常多的场景;后面我们会将这些场景转换成代码。

总结一下

​ 直至这里,作为一名程序员,可能都没有听到比较令你惊喜的点。而且你会发现,现在都只是整理非常零散的需求,针对不同的用户产生不同的故事,然后对用户故事细化,提炼出丰富的但却非常散乱的领域知识,并且这些工作仿佛离我们都不是很贴合。其实你慢慢可以发现,DDD的那种神秘感在慢慢消失,我相信到最后你会感叹—DDD真正落地并不容易,并非那么容易发挥它真正的价值!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/301366.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号