开篇词 | 学好了DDD,你能做什么?
该思维导图由 AI 生成,仅供参考
我与 DDD
关于专栏
关于课程设计
基础篇
进阶篇
实战篇
- 深入了解
- 翻译
- 解释
- 总结
欧创新的专栏课程《DDD实战篇》深入探讨了领域驱动设计(DDD)在中台业务建模和微服务设计中的应用。作者强调了DDD、微服务和中台之间的关系,将课程内容分为基础篇、进阶篇和实战篇,通过浅显易懂的案例和实践经验,带领读者深入理解DDD的核心概念和应用。实战篇重点介绍了中台和领域建模的实战,微服务设计实战以及前端应用的最新设计思想。通过课程,读者将能够深入了解微服务设计和中台,获得实质性的帮助,从而在实际工作中更好地应用DDD的设计思想。欧创新鼓励读者多动手参与DDD事件风暴工作坊,相信这个专栏能帮助读者掌握一套完整而系统的基于DDD的微服务设计和拆分方法,使微服务设计思路更加清晰,设计过程更加规范,让中台和微服务落地如虎添翼。
2019-10-14136人觉得很赞给文章提建议
《DDD 实战课》,新⼈⾸单¥59
全部留言(84)
- 最新
- 精选
- errocks问一下, 这个专栏有学习群不
编辑回复: 暂时没有,需要的小伙伴可以为errocks点赞,视人数而定。
2019-10-2716543 - Geek_88604f请问老师,中台和平台有什么区别与联系?
作者回复: 平台只是将部分通用的公共能力独立为共享平台。虽然可以通过API或者数据对外提供公共共享服务,解决系统重复建设的问题,但这类平台并没有和企业内的其它平台或应用,实现页面、业务流程和数据从前端到后端的全面融合,并且没有将核心业务服务链路作为一个整体方案考虑,各平台仍然是分离且独立的。 中台来源于平台,但中台和平台相比,它更多体现的是一种理念的转变,它主要体现在这三个关键能力上:对前台业务的快速响应能力;企业级复用能力;从前台、中台到后台的设计、研发、页面操作、流程服务和数据的无缝联通、融合能力。 中台首先体现的是一种企业级的能力,它提供的是一套企业级的整体解决方案,解决小到企业、集团,大到生态圈的能力共享、联通和融合问题,支持业务和商业模式创新。通过平台联通和数据融合为用户提供一致的体验,更敏捷地支撑前台一线业务。
2019-11-151059 - 吴建中关于区分平台与中台初步的认识,平台面向特定领域,偏技术,也有业务,避免重复建设,比如工作流引擎,移动平台,办公平台。平台之间是相对孤立的,在企业内会形成平台孤岛。而中台是企业级业务模型,面向的是业务,本质是业务,强调全局业务流,业务的互联互通,业务复用,相当于建立一个企业级的大系统,但不是单体应用,而是先从整体出发,再拆分成多个有内在关联的服务,由业务驱动各服务衔接。而技术上是通过微服务,分布式这种架构风格,来管理复杂度。微服务本来就复杂,需要成熟的平台,中间件,比如dubbou和springcloud,来降低复杂性。
作者回复: 跟专栏的思路非常一致啊。
2019-12-14426 - 流沙河个人的理解,中台的观察视角比较高一些,是给企业的高层人员的,是企业架构或者企业信息化整体战略的结果,阿里当时面临着天猫体系和淘宝体系以及聚划算等等多个相对独立的业务部门,各个业务部门的系统共享比较差,于是通过打造中台来将各个业务线的通用业务逻辑和通用系统抽取出来,逐步沉淀和优化,以至于后期各种新的业务应用可以快速的基于这套中台系统实现出来,形成了大中台小前台的状态,所以中台应该是一套通用业务系统的集合体。当然针对单个系统或者单个平台可以考虑微服务的系统架构设计,微服务系统的边界划分是个难题,DDD应该是个很好的设计思想。期待后续的课程。
作者回复: DDD战略设计是用来建立业务模型的,适用于企业级的中台,同样也适用于项目级的领域建模。它的战术设计适用于微服务的设计,所以DDD是个好东西。希望能对你有所帮助。
2019-10-1421 - 天涯海峰实战课,开发语言用什么
作者回复: DDD是一种架构设计方法,不限定语言,我习惯用JAVA,所以用JAVA做示例,你可以用你自己熟悉的语言来实战。
2019-10-1416 - Geek_778d19事件风暴工作坊?是指什么呢 ,如何参与进去?
作者回复: 事件风暴类似头脑风暴,它是项目团队与领域专家聚集在一起,快速分析和分解复杂业务领域,完成领域建模的过程。 事件风暴是一项团队活动,项目团队通过头脑风暴的形式罗列出领域中所有的领域事件,整合之后形成最终的领域事件集合,然后对于每一个事件,标注出导致该事件的命令,再为每个事件标注出命令发起方的角色,命令可以是用户发起,也可以是第三方系统调用或者定时器触发等,最后对事件进行分类,整理出实体、聚合、聚合根以及限界上下文,建立领域模型。然后你就可以基于领域模型进行微服务设计了。
2019-10-31313 - 特种流氓欧老师 可以讲讲 ddd与面向对象设计的区别及联系吗
作者回复: DDD包括战略设计和战术设计,在战略设计时完成领域建模,战术设计实际上是落到了系统设计。它是根据领域模型中的领域对象以及他们的关系来完成设计,在这个设计过程中当然会有DDD战术设计自己的方法,比如聚合,实体,值对象,以及应用的内部分层架构,战术设计过程的大部分方法还是在用面向对象的设计方法。
2019-10-2911 - brant老师,请问一个问题。您觉得领域驱动的本质是啥,然后领域驱动的核心方法,实现策略是什么?
作者回复: DDD和微服务其实都是从业务领域出发,将大的业务领域分解为小的子域,完成领域建模,用领域模型指导微服务设计和落地。两者都是采用分而治之的策略来降低业务领域认识和软件产品建设的复杂度。 领域驱动设计在领域建模的过程中最关键的就是完成了业务边界的划分,这个边界包括领域模型之间的边界,同时也包含了领域模型内部聚合之间的边界,有了这个边界就可以设计出高内聚低耦合的微服务。这是DDD战略设计阶段的关键内容。 而在DDD战术设计阶段,用DDD的分层架构实现微服务内各层之间解耦,很好的降低各层之间的依赖。在发生变化时,可以降低各层之间相互影响,保证各层模型的稳定。
2020-04-0810 - 雷霹雳的爸爸我算是刚入行时候案头就常备一本Eric Evans的 DDD(刚翻了一下是06年清华大学出版社的译本),别说真是少有的一本我从头到尾翻完了的书...但那时候看起来不啻为一本天书...只是我内心深处总是隐约觉得,终会有一天会在转角再次遇到他,果不其然,这本书在我桌上吃灰十年之后,随着微服务兴起,无论是理论领军人物Chris Richardson本尊,还是各路英豪,均又纷纷祭出DDD汲取养分,很难不让人重新对这本书,这些概念和方法重新产生兴趣,于是,为了表示尊敬,我在异步社区又入了一个电子书(应该是另一个译本),以数字化生存的方式让这本书继续在我这里吃灰,结果到现在自然还只剩下惭愧不已;这次,希望能跟随老师的专栏,把各路灰尘一扫而空,看看自己能否在此方向上有所真切的领悟,顺便瞄一瞄我这个做着运维管理工作但是深爱着DevOps工具的架构师最终的归宿到底是哪里...特么的本来是想来一篇檄文的,咋写着写着就这么伤感咧?
作者回复: 😄,向执着于DDD的前辈致敬。
2019-10-3037 - 葡萄吃葡萄皮现在对于DDD模型。持久化数据应该使用哪种比较合适?Mybatis?Spring Data JDBC? JPA?
作者回复: DDD在基础层是通过仓储的控制反转的方式来实现应用与基础资源来解耦的。也就是说应用逻辑里面不应该含有基础资源的实现代码,SQL语句等与数据相关的代码不应放在业务逻辑代码来实现。以后如果需要换数据库的话,对应用逻辑影响相对会小很多。目前来说持久化的工具Mybatis可能会好一些。
2019-10-1726