200微商引流方法,什么是领域建模,清点领域建模的头脑和方式

领域建模刍议(一):

分清问题域和问题解决域

领域与领域模子

俗话说,人人心中有一个Hamlet,人人心中也都有一个领域模子的界说。

常见的有:

说法1:我明了的领域是对营业事情举行归类划分,归类的方式是营业事情具有相关的知识,这些所需要的知识组成一个领域,这些知识是营业事情的靠山,通过对领域的剖析,可以辅助我们挖掘、剖析、明了营业事情的本质。 也就是说,领域是为需求剖析事情服务的,它的目的是挖掘、剖析、明了营业事情的本质。

说法2:领域模子就是对领域内的看法类和现实天下中工具的可视化示意。

说法3:企业应用架构模式中明确提出了三种领域逻辑组织模式:事务剧本、领域模子和表模块。领域模子同时将行为和数据作为领域逻辑的焦点。

从上面可以3种说法,可以看到差别上下文差别的看法,甚至未必是统一个表达工具。企业应用架构模式中的领域模子是设计到实现层的一个看法,而说法1,说法2种的领域是营业层面及剖析阶段的一个看法。因此,本文特指[领域模式]为营业视角的模子,引用界说如下:

• 领域: 是相对于系统而言的,是系统要解决的现实问题。

• 领域模子是对领域内的看法类或现实天下中工具的可视化示意(百度)

• 领域模子是针对某个特定问题的所有相关方面的抽象模子(Wikipedia)

领域建模:分清问题域和问题解决域

思索,若何对上图的元素建模?

领域建模的利益

领域建模的利益,有哪些呢?

差别角色统一语言、统一认知

领域建模:分清问题域和问题解决域

如上图所示,客户需求历经演变之后已经面目一新,每一个加工制造环节都以为在[准确的做事]。君不见这样的生动局势一再上演:

产物司理宣讲prd,产物司理需要分别把名词翻译给营业方和开发人员,一则营业语言,一则手艺语言。

几个架构师在小黑屋吵了半天,为了争论一个名词界说。好比什么是支付?百度百科的注释:社会经济活动所引起的钱币债权转移的历程。包罗:买卖、整理、结算。

那么对于下列情形是否属于支付局限就是可以凭据其内在来比照了。

  • 用户A转账给B。
  • 用户通过某某网站还信用卡。
  • 用户在天猫购买了一个器械,使用花呗付款。

由此可见,显性的统一语言很主要,让相干人明了讨论的是一件事情。

对营业本质形貌,抓到主旨

好比在支付宝渊源的生长历程中,我们先后使用有红包、实时优惠、商户优惠券等产物。这是烟囱式架构生长下的产物。

领域建模:分清问题域和问题解��域

行业也有其它类似券的东东,如下图所示:

领域建模:分清问题域和问题解决域

这3个产物我们锊一下:

1、 对于商户或者机构而言,这些是否可称之产物,可以面向商户售卖包罗收费。

2、 对于用户而言,是否需要明了这3个器械差别的?这些认知对于营销,对于买卖促成,对于品牌的利益是什么?

3、 对于支付宝平台而言,他们的治理模式有何区别?

4、 对于手艺团队而言,他们是否可以抽象?

厥后,我们在产物上形成了如下界说:

券界说:

是一种票据,作为券刊行方和拥有方之间凭证,具有一定的价值和执法效应。

相关相干方:

券的发放方[提供权益]

券的拥有方[享受权益]

劵的发放工具[是券刊行偏向拥有方发放券凭证的工具]

券形式:

以介质分类:纸质券,电子券

以使用方式分类:入场券,礼品券,提货券,代金券、红包,打折卡,满减卡等

平台如何做推广,网站平台推广技巧分享

可以把券作为基础产物,在营业形态上可以包装为打折卡,满减卡等用户感知的[产物]或者是[营销工具]。

领域模子=ER?

领域模子是否就是ER模子呢?谜底是否认的,领域模子是特定营业域营业实体关系的自然浮现,而ER是设计阶段数据库实现关系的产物。

如下图所示,自然人Person在特定营业领域有2类,一类是客户(Customer),一类是雇员(Employee).

领域建模:分清问题域和问题解决域

但究其实现而言,数据库设计有多种形态。

领域建模:分清问题域和问题解决域
领域建模:分清问题域和问题解决域
领域建模:分清问题域和问题解决域

领域建模=DDD?

一说领域建模就提及DDD, 是人人的自然反映。由于DDD(2004年著名建模专家EricEvans揭晓了他最具影响力的著名书籍:Domain-Driven Design –TacklingComplexity in the Heart of Software)的知名度颇高。我的看法是领域模子的发生是剖析阶段的产物,剖析是对需求及需求背后相关内容的挖掘,不用缔造内容。DDD顾名思义是模子驱动设计,是从需求打通到设计阶段的方式。

领域建模涉及到哪些看法呢?

域(domain):需要讨论的问题局限,称为域或者问题域。

子域(subdomain):对于域举行差别纬度切分相对内聚的单元。好比电商营业涉及订单、库存、营销子域等。

语境(context):是一个特定人群在讨论的问题域是所形成的上下文。 这里要强调一个看法,特定人群不是以团队或者是项目为界线划分的人群, 而是以知识为界线来划分的人群。 也就是说上下文不是普遍存在的, 而是存在于一个人群内部的,而且这些上下文大多是以隐形知识(Tacit Knowledge)的方式而存在的。

域语言(Ubiquitous Language): 领域模子可以成为人人相同公共语言的焦点,同时将团队相同与软件实现慎密联系到一起。这种公共语言是整个团队事情中的UBIQUITOUS LANGUAGE(通用语言)。

实体(Entity):实体就是领域中需要唯一标识的领域看法。由于我们有时需要区分是哪个实体。有两个实体,若是唯一标识不一样,那么即便实体的其他所有属性都一样,我们也以为他们两个差别的实体;由于实体有生命周期,实体从被建立后可能会被持久化到数据库,然后某个时刻又会被取出来。以是,若是我们不为实体界说一种可以唯一区分的标识,那我们就无法区分到底是这个实体照样哪个实体。

数值工具(Value Object): 值工具没有唯一标识,这是它和实体的最大差别。有一部影戏中说联邦调查局通过隐私查询,查询到男主和女二曾在大学时代拥有相同的收货地址而判断他们曾住在一起。这里的Address可以作为值工具,它的所有属性决议它是谁,而不必通过ID来区别。

触发事宜(Event):企业级应用程序事宜大致可以分为三类:系统事宜、应用事宜和领域事宜。领域事宜的触发点在领域模子(Domain Model)中,故以此得名。通过使用领域事宜,我们可以实现领域模子工具状态的异步更新、外部系统接口的委托挪用,以及通过事宜派发机制实现系统集成。在系统剖析阶段,我的看法是不区分事宜类型。

思索 Event与彩色建模中的MI有无区别和联系?

在电信信息架构中有大量的事宜,如下图所示。

领域建模:分清问题域和问题解决域

看法:不建议在剖析阶段区别Entity和Value Object

不建议在剖析阶段区别Entity和Value Object。好比Customer和Adress的关系和区别一样,在后续精细化历程中,熟悉自然就清晰了,好比Adress是可以复用的,非唯一的。

看法:在域模子中可以增添营业规则作为弥补

在域模子中可以增添营业规则作为弥补。好比下图在送货单和订单项的关系上有一行约束说明:只有当所有订单项都已经送到,才气乐成关闭订单。

领域建模:分清问题域和问题解决域

我们来看看 DDD的内容那些是领域建模(剖析阶段应该识别的)。

领域建模:分清问题域和问题解决域

如上图所示,在剖析阶段可以用的至多有entity、value object。再次论证了DDD是一个重在Design的工具。

基于上面域,域语言等看法,不难明了差别域统一名词的寄义差别,即使是统一介质它的内在和外延也差别,我们可以把域表述为问题域。

好比电子商务网站有优惠券,包罗天猫购物券、店肆券、商品优惠券等,下图为淘宝券截图。

领域建模:分清问题域和问题解决域

另有一个专门做券导航的网站:券妈妈。

领域建模:分清问题域和问题解决域

这2个网站治理的券是同类的器械,它们的模子是否就一样了呢?这2个网站治理的都是券,然则营业实体[券]是有差异的,由于它们要解决的问题域差别。券妈妈是一个流量入口,关注领用和跳转;而淘宝券关注使用情形[下单时订单金额扣减],包罗使用券的用户对店肆的黏性,二次消费等。营业实体的营业行为,状态也有有所差异。

问题域vs问题解决域

最后总结一下,问题域和问题解决域是2个局限,分属剖析、设计及实现阶段,在差别阶段使用的工具和目的也有所差异,如下图所示:

领域建模:分清问题域和问题解决域

在剖析阶段的领域模子中,我以为主要形貌领域实体及关系,可以辅助领域名词注释(可以是营业字典形式)、以及约束(营业规则),而营业实体(域实体)仅形貌主特征即可。

领域建模:分清问题域和问题解决域

未完待续,领域建模刍议(二)将先容建模的方式系统。

ps: 系统化思索是最好的总结和学习,我在编写本章的历程中发现了一些模糊的内容,包罗写完也有不少未知。

ps:长期使用java语言,近几个月发现.net领域不乏对于领域的深入思索者。

稀奇推荐:

汤雪华,网名netfocus,2006年结业于浙江大学,现在住在杭州。对DDD,以及CQRS架构对照感兴趣。开源软件ENode负责人,现就职阿里巴巴。

文章中关于entity的形貌参考了汤先生的下文

http://www.cnblogs.com/netfocus/archive/2011/10/10/2204949.html

陈晴阳(Sunny Chen),2003年结业于中南大学铁道校区。高级程序员,系统剖析员,微软MVP(Visual C#)。cnblogs网名daxnet,并计划以该名闯荡IT江湖。MicrosoftDynamics AX、Microsoft .NET/C#以及领域驱动设计(DDD)的狂热爱好者。

文中关于Domain Events的形貌引用自

http://www.cnblogs.com/daxnet/archive/2012/12/27/2836372.html

ps:团体内阿白对于界线上下文(Bounded context)、语境映射(Context Mapping)以及域语言(Ubiquitous Language)均有异常精彩的叙述。

本文来源于自互联网,不代表n5网立场,侵删。发布者:虚拟资源中心,转载请注明出处:https://www.n5w.com/122073.html

(0)
打赏 微信扫一扫 微信扫一扫
虚拟资源中心虚拟资源中心网络小白
上一篇 2020年6月21日 21:54
下一篇 2020年6月21日 21:54

相关推荐

联系我们

电话:

在线咨询:点击这里给我发消息

邮件:@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

公众号