网站敏感目录漏洞修复,网站开发 公司 深圳,118论坛,未满十八岁能用网上借钱吗提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、场景和要求二、领域模型关键词1.领域2.子域3.通用语言4.限界上下文5.领域模型6.实体和值对象7.聚合根8.领域服务9.领域事件 总结 前言
Domain Driven Desi… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 前言一、场景和要求二、领域模型关键词1.领域2.子域3.通用语言4.限界上下文5.领域模型6.实体和值对象7.聚合根8.领域服务9.领域事件 总结 前言
Domain Driven Design(领域驱动设计, DDD)不是一种架构而是一种架构方法论是一种拆解业务、划分业务、确定业务边界的方法是一种领域设计思想。
一、场景和要求 DDD领域驱动设计实际上是一套软件架构设计的方法论我们可以在此之上更好的理解业务。并且我们可以根据这套方法论进行架构风格填充包括微服务架构面向服务架构REST风格架构以及六边形架构等等。
解决的问题软件开发完成后因需求的变更导致软件不得不增加新的功能软件越来越冗余导致最后不得不重构领域驱动设计能分析好领域相关的业务逻辑确定好边界确定同一沟通预言让软件通过领域模型设计后更易于扩展。
二、领域模型关键词 1.领域
领域其实就是我们的范围而范围实际上就是我们的边界我们做什么做到什么程度最低多少 最高多少。 领域其实就是我们的范围而范围实际上就是我们的边界我们做什么做到什么程度最低多少 最高多少。 比如 电商 就是一个领域 金融是一个领域教育是一个领域你要确定你做的软件产品具体的领域边界分析涉及到的数据业务规则流程然后通过面向对象的方式建立一个模型再选择合适的技术实现。
2.子域
领域太过于复杂业务太过于分散这个时候我们做一个拆分把领域划分成子域比如电商系统很复杂将他拆分成比如一个个的模块订单商品库存甚至我们的模块还能进行细分比如库存可以分为本地库异地库三方托管库。划分子域 1 是分治2是可以对子域进行分析重要的子域加资源。
核心域子域业务核心核心的竞争力因为企业愿景不同领域愿景也不同核心域也不同说白了就是你们项目最初立项的目的是什么目标是什么。为什么要做这个项目。核心域的范围并不一定是一次就能确认的可能需要迭代很多次每一次都有可能扩大或缩小通用域子域整个领域都能够用到的子域比如我们的认证权限等等相关的模块这就是我们的通用域。支撑域子域支撑域实际上就是不包含核心竞争力的功能也不包含通用的功能但是又是必须的支撑。
3.通用语言
沟通的桥梁必须要有一个东西能够让我们的团队人员交流起来有一个标准。并且他还需要能够正确的简单的清晰的表达业务。让我们的技术专家业务人员产品测试架构都能够达成共识并且协同合作。这个叫做通用语言类似需求文档里的词语解释就是让大家能在同一维度进行高效的交流沟通。
4.限界上下文
限界和上下文。限界就是领域的边界也就是范围而上下文则是语义环境。通过领域的限界上下文我们就可以在统一的领域边界内用统一的语言进行交流。
5.领域模型
领域模型是对领域内的概念类或现实世界中对象的可视化表示领域模型是用来描述业务对象之间的引用关系。
业务角色业务角色表示的是一个角色承担的一系列责任。比如收银员他的责任是计算商品价格收钱找零甚至退换货。业务实体业务实体表示的是其实你使用或者可交付的工件资源事件。比如电商项目中的商品。你需要给卖家打印的发票。业务用例实际上业务用例显示的是协作角色与业务实体之间如何执行工作流程也就是我们的业务链路
6.实体和值对象
实体正常的实体对象有唯一键标识就算所有字段内容一样也不是一个例如学生id姓名年龄就算姓名年龄一样也不是一个。值对象没有唯一性标识例如 学生实体上有一个地址这个地址是一个对象里面字段为省市街道详细地址这个地址信息对象就是值对象。
7.聚合根
平常我们有的实体比较复杂为了满足业务有可能会弄出一个非常复杂的实体里面包含很多实体跟这个类似这里的聚合是指同一生命周期同一业务域的实体聚合成一个聚合根也就是最外面的实体并且这个实体管理者里面的所有实体外面只能通过聚合根进行任何和请求聚合根再对里面进行操作这里我感觉就是高内聚聚合根不易过大。
8.领域服务
领域服务代表了领域的概念是问题域中的行为与领域专家对话中产生肯定是通用语言的一部分。比如计价、认证 某些行为不适合放在任何一个实体中尝试强制归属实体时就该考虑用领域服务了。 代表行为、不具备身份、无状态是领域服务的特点。
9.领域事件
事件驱动有一些代码逻辑例如下单后面有很多操作一般我们一个下单方法里会包含好几个子方法并且带有if时间长了会非常冗余并且方法越来越大事件驱动就是当下单之后发一个事件mq如果需要做一些操作多个端接收这个消息事件然后做自己的操作就行扩展的话就多一个接收方对之前代码无侵入修改。
领域专家所关心的发生在领域中的一些事件。 将领域中所发生的活动建模成一系列的离散事件。每个事件都用领域对象来表示…领域事件是领域模型的组成部分表示领域中所发生的事情。
总结
每日一小结进步一大节