好的领域模型应该长什么样子?
DDD说,领域模型应该是可以准确表达业务需求的模型。
(资料图)
模型和领域模型是两个概念,模型可以是数据模型或服务模型,领域模型是以领域为核心的模型,是对领域知识严格组织和抽象得来的。
那,应该如何描述领域模型呢?
是UML图?还是编程代码?还是一个完整的书面文档?
这些仅仅是表达领域模型的一种载体,如果UML图、编程代码、书面文档不能传递出领域知识,那就不是领域模型。
一个好的领域模型应该包含如下特征:
用统一语言来表达领域中的概念;
涵盖了业务活动和规则等领域知识;
对领域内的知识做了适当的提炼和抽象;
建立了一个迭代演进的过程;
有助于业务人员和技术人员的交流;
所以,我们忘记载体,关注于他如何传递领域知识,并且有助于技术人员和业务人员的交流,那他就可以称为领域模型。
模型设计和模型实现其实是两件事情,就像在公司里面老板做战略取舍,基层做战术落地,在领域模型的设计和实现上应该也分开。
模型是作基本职责的分配,程序是模型的具体表达。
Eric Evans说:将分析、建模、设计、编程工作过度分离对模型驱动设计会产生不良影响。
所以要将分析、设计、实现统一到模型设计中考量。
在分析阶段,业务人员和技术人员在一起工作,建立准确和简洁的分析模型,直观传递不同角色对业务知识的理解。
在设计阶段,基于分析模型对模型中的设计进行改进,考虑职责的合理分配和协作,建立有指导意义的设计模型。
在实现阶段,代码忠实反映模型的设计,反映出模型中的领域和知识。
战略设计环节,识别出业务场景下,系统的限界上下文。
在限界上下文中,提取语义相关和功能相关的用例,作为分析建模的重要输入。
战术设计环节,通过用户故事迭代,逐步对比模型进行细化,引入设计模式,结合TDD开发等进行编码实现。
领域服务应该是一系列活动集合,是领域服务下的关键环节。
在每个关键环节,对于不同用户身份,应该有规则映射处理细节,这部分规则可以有机的、结构化的可视化出来,便于沟通。
领域服务应该和领域挂钩,指导每个关键领域下应该有的活动有哪些。
要想实现这些活动集的复用,就需要明确输入和输出,看得清输入、输出、关键流程才敢去复用。
总结来说,领域、领域服务、领域节点、业务身份的关键规则、为领域服务复用的输入和输出,都是可以被可视化和配置化起来的。
标签:
12月30日发布《中航基金管理有限公司关于中航首钢生物质封闭式基础设施证券投资基金收益分配的公告》。...
大型点的超市都有的卖,比如华润等。金桔作为一种常见的水果,其实其对人体也是有许多好处的,包括利用...
在长沙工作的本科毕业生,在毕业两年内可以申请长沙市租房和生活补贴,以下是长沙本科生租房和生活补贴...
中国物流与采购联合会今天(12月28日)公布:今年1—11月份,全国社会物流总额为301 9万亿元,同比增长...
2022佛山事业单位招聘信息汇总(不断更新)更新时间:2022年12月23日招聘单位招聘岗位招聘人数最低学历要...
在前不久的2022统信UOS生态大会上,统信正式发布了一款国产系统的系统U盘,推出了首个面向C端的国产操作...
智通财经APP讯,东方电气(01072)发布公告,该公司2019年A股限制性股票激励计划(以下简称本激励计划)首次...
江南秋季唯美句子精选71句1 潇洒亭轩,清虚户牖。画展江南烟景,香焚真腊沉檀。庭前修竹,风摇一派佩环...
近日,刚挂牌满半年的铜冠矿建(873727)正式进入北交所上市辅导期,辅导机构为天风证券。从时间进度来...
每经AI快讯,有投资者在投资者互动平台提问:贵公司的中药饮片有治疗新冠吗?鹭燕医药(002788 SZ)12月2...
1、车辆行驶证原件或复印件;2、车辆驾驶人驾驶证原件;3、车辆驾驶人身份证原件;4、现金和银行卡。交通事...
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天...
本文是中国大学慕课《机器学习》的“集成学习”章节的课后代码。课程地址:https: www icourse163 org course WZU-1464096
中新网银川12月27日电(记者杨迪)记者27日从宁夏党委宣传部新闻发布会(第一场)上获悉,2022年,宁夏2499...
(原标题:杰华特等11只科创板股融资余额增幅超10%)证券时报网讯,wind统计显示,12月26日共有240只科...
民政厅发布《关于加强五社联动提升社区关爱服务质效的通知》〉〉
智通财经APP讯,天宸股份公告,公司控股子公司上海天宸健康管理有限公司(简称“天宸健康”)于2020年启动...
孚日股份(002083)12月26日在投资者关系平台上答复了投资者关心的问题。
12月22日,由中交一航局承建的达州市第一人民医院项目门诊医技住院楼封顶,进入安装装饰工程施工阶段。...
储户存款留意了,被银行员工问到“这个问题”,要想清楚了再回答
X 关闭
X 关闭