草庐IT

从软件复杂度的角度去理解DDD

从我们作为业务开发主要的职责深入到DDD的本质是什么?复杂度应处理?规范设计怎么做?本文将全方位为大家解答。一、作为业务开发,我们的主要的职责是什么的 业务开发的职责在文章的开始我想和大家一起思考一个问题:作为一个工程开发,我们最主要的职责是什么? 我极度认可>文章的观点- 切实解决业务问题才是每一个工程开发最主要的职责 -所以每个业务开发都必须要结合业务的视角去思考自己系统的建设和发展,而不是只是做一个“编程的”码农。这里摘录一下文章中要点技术一号位是负责使用技术能力解决业务问题,提供稳定可靠的技术支撑;负责向业务各方提供各种必要的技术支撑,通过合理的数据分析为业务决策提供依据;通过对技术领

从软件复杂度的角度去理解DDD

从我们作为业务开发主要的职责深入到DDD的本质是什么?复杂度应处理?规范设计怎么做?本文将全方位为大家解答。一、作为业务开发,我们的主要的职责是什么的 业务开发的职责在文章的开始我想和大家一起思考一个问题:作为一个工程开发,我们最主要的职责是什么? 我极度认可>文章的观点- 切实解决业务问题才是每一个工程开发最主要的职责 -所以每个业务开发都必须要结合业务的视角去思考自己系统的建设和发展,而不是只是做一个“编程的”码农。这里摘录一下文章中要点技术一号位是负责使用技术能力解决业务问题,提供稳定可靠的技术支撑;负责向业务各方提供各种必要的技术支撑,通过合理的数据分析为业务决策提供依据;通过对技术领

可落地的DDD(7)-战术设计上的一些误区

背景几年前我总结过DDD战术设计的一些落地经验可落地的DDD(5)-战术设计,和一次关于聚合根的激烈讨论最近两年有些新的落地体验,回过头来发现,当初对这些概念的理解还是没有深入,这篇文章重新阐述下。之前理解不到位的点有战术设计的各个模块是的协作关系哪些是问题空间问题,哪些是方案空间问题边界没有划分清楚。实体和聚合根的区别理解不不深刻,实体和聚合根建模的方法不对。以上问题将会在下文解释清楚。战术设计拆解DDD的战术设计即设计某个子域的领域模型以及代码落地。领域事件、领域对象、聚合根、实体、值对象、领域服务、工厂、资源库等这些概念都属于这个范畴。笔者将这些概念重新分层组装了下,如下图所示。首先将整

可落地的DDD(7)-战术设计上的一些误区

背景几年前我总结过DDD战术设计的一些落地经验可落地的DDD(5)-战术设计,和一次关于聚合根的激烈讨论最近两年有些新的落地体验,回过头来发现,当初对这些概念的理解还是没有深入,这篇文章重新阐述下。之前理解不到位的点有战术设计的各个模块是的协作关系哪些是问题空间问题,哪些是方案空间问题边界没有划分清楚。实体和聚合根的区别理解不不深刻,实体和聚合根建模的方法不对。以上问题将会在下文解释清楚。战术设计拆解DDD的战术设计即设计某个子域的领域模型以及代码落地。领域事件、领域对象、聚合根、实体、值对象、领域服务、工厂、资源库等这些概念都属于这个范畴。笔者将这些概念重新分层组装了下,如下图所示。首先将整

.NET现代应用的产品设计 - DDD实践

统一术语(战略设计)我们将通过DDD完成业务与技术的完整落地统一领域模型术语DDD模式名称技术技术设计术语 技术术语 技术设计模式业务 领域模型术语DDD模式名称业务术语设计无关的业务术语清晰的事件流DDD领域驱动设计是一个有关软件开发的方法论,它提出基于领域开发的开发模式,基于DDD理论,我们可以设计出高质量的软件模型。它围绕业务概念构建领域模型来控制业务的复杂度,解决软件难以理解和演化的问题。战略设计(业务)领域、子域、限界上下文将领域拆分成子域,并划分核心子域、支撑子域和通用子域以子域展开事件风暴,根据上下文语义划分限界上下文,建立通用语言,完成领域建模领域建模将作为能力中心规划的重要依

.NET现代应用的产品设计 - DDD实践

统一术语(战略设计)我们将通过DDD完成业务与技术的完整落地统一领域模型术语DDD模式名称技术技术设计术语 技术术语 技术设计模式业务 领域模型术语DDD模式名称业务术语设计无关的业务术语清晰的事件流DDD领域驱动设计是一个有关软件开发的方法论,它提出基于领域开发的开发模式,基于DDD理论,我们可以设计出高质量的软件模型。它围绕业务概念构建领域模型来控制业务的复杂度,解决软件难以理解和演化的问题。战略设计(业务)领域、子域、限界上下文将领域拆分成子域,并划分核心子域、支撑子域和通用子域以子域展开事件风暴,根据上下文语义划分限界上下文,建立通用语言,完成领域建模领域建模将作为能力中心规划的重要依

领域驱动设计(1) DDD的一些基础概念

什么是DDDDDD的特点战略设计、战术设计DDD在微服务中解决的问题DDD的好处与局限领域领域、子域核心域、通用域、支撑域通用语言、限界上下文通用语言限界上下文实体、值对象实体值对象聚合和聚合根聚合聚合根如何设计聚合聚合的设计原则  什么是DDD看了一些DDD的介绍、教程,这些教程无一例外都会讲一个关于美好邂逅的故事,故事的情节大概是这样的:DDD是2004年出现的,但一直不温不火,直到十来年后出现了微服务,大家在落地微服务的时候遇到了各种各样的问题,其中就有一个很让人头疼的:“微服务到底要多微”?,大家总说纷纭,直到有人把DDD的方法论应用到微服务的拆分,两者一拍即合,过上了幸福的生活...

领域驱动设计(1) DDD的一些基础概念

什么是DDDDDD的特点战略设计、战术设计DDD在微服务中解决的问题DDD的好处与局限领域领域、子域核心域、通用域、支撑域通用语言、限界上下文通用语言限界上下文实体、值对象实体值对象聚合和聚合根聚合聚合根如何设计聚合聚合的设计原则  什么是DDD看了一些DDD的介绍、教程,这些教程无一例外都会讲一个关于美好邂逅的故事,故事的情节大概是这样的:DDD是2004年出现的,但一直不温不火,直到十来年后出现了微服务,大家在落地微服务的时候遇到了各种各样的问题,其中就有一个很让人头疼的:“微服务到底要多微”?,大家总说纷纭,直到有人把DDD的方法论应用到微服务的拆分,两者一拍即合,过上了幸福的生活...

戏说领域驱动设计(十四)——补遗

  写了好几章的东西,再回头读的时候发现有些内容写的不理想,没有表达出自己所想要表达的意思。这次写一个补遗,把我认为需要重新解释和着重说明的内容再唠一唠。反正我多说两句,您就可以多理解一些。按此等形式,我感觉下次应该找个小弟当副编辑,专门用于挑错。废话不多说,走起……一、为啥我讲的和书上的内容有些不一致?  答:四个原因。1,“尽信书,不如无书”,这是这么一个简单的道理。《领域驱动设计:软件核心复杂性应对之道》及《实现领域驱动设计》这两本书可以说是一脉相传,都是针对复杂的业务给出的解决方案,书中针对战术模式的讲解力度很大尤其是后面这本。我所讲的自然要基于经典,实际上也没有超出它们的圈子,只是里

戏说领域驱动设计(十四)——补遗

  写了好几章的东西,再回头读的时候发现有些内容写的不理想,没有表达出自己所想要表达的意思。这次写一个补遗,把我认为需要重新解释和着重说明的内容再唠一唠。反正我多说两句,您就可以多理解一些。按此等形式,我感觉下次应该找个小弟当副编辑,专门用于挑错。废话不多说,走起……一、为啥我讲的和书上的内容有些不一致?  答:四个原因。1,“尽信书,不如无书”,这是这么一个简单的道理。《领域驱动设计:软件核心复杂性应对之道》及《实现领域驱动设计》这两本书可以说是一脉相传,都是针对复杂的业务给出的解决方案,书中针对战术模式的讲解力度很大尤其是后面这本。我所讲的自然要基于经典,实际上也没有超出它们的圈子,只是里