👆点击“博文视点Broadview”,获取更多书讯
在学习领域驱动设计前,我们要对其学习难点有清晰的认识。针对其学习难点,本书提供了一条行之有效的学习路线。
1. 难以建立知识体系
领域驱动设计涉及许多新的概念和术语,如实体、值对象、聚合根、领域服务、工厂、仓储、领域事件等。这些概念和术语不仅需要记忆,还需要深入理解其含义和作用。
此外,领域驱动设计还涉及一些特定的设计模式和架构,从战略设计到战术设计,从经典四层架构到端口适配器架构等。知识的跨度比较大,初学者如果不清楚知识点之间的先后顺 序,很难快速建立知识体系,导致无法从整体上掌握领域驱动设计。
2. 案例有限
如前文所述,很难找到成功的开源项目案例。
3. 难以结合实际开发过程进行应用
在实际开发中,很难孤立地使用领域驱动设计完成工作,通常需要结合许多开发方法,如设计模式、敏捷开发、测试驱动开发等。
本书提供了领域驱动设计的学习路线如图1所示。
图1 领域驱动设计的学习路线
该学习路线分为几个阶段,分别如下:
第一阶段,解决应用架构的问题。本书带领读者从经典的三层贫血架构出发,推导可以 落地领域驱动设计的应用架构。之所以要自己推导,是希望读者掌握这个演化的过程,加深印 象,以便在实践中灵活应用。接下来关于领域驱动设计的知识,不管是战术设计还是战略设计,都可以按图索骥地在这个应用架构中实现。要了解领域对象的生命周期,只有掌握了其生 命周期,才能对领域模型在应用架构中的类型变化了如指掌。
第二阶段,掌握领域驱动设计的战术设计。这个阶段需要学习战术设计相关的核心概念, 包括:实体、值对象、聚合 / 聚合根、领域服务、Repository、Factory 等。掌握这些战术设计 的概念后,基本上就可以开发一些简单的应用了。
第三阶段,掌握使用领域驱动设计实现复杂业务逻辑的基本思路。这个阶段要学习使用设计模式、防腐层、规约模式等实现复杂的业务逻辑,并将其应用在领域驱动设计的开发中。通 过这个阶段的学习,读者能够使用领域驱动设计解决大部分的业务问题。
第四阶段,掌握领域事件和事件溯源。这个阶段首先需要学习幂等设计,因为它可以确保服务支持安全的重试,避免重复请求影响业务的正确性。在幂等的前提下,掌握如何建模领域事件并安全可靠地发布、订阅,以及如何实现命令查询责任分离(Command Query Responsibility Segregation,CQRS)和事件溯源。业界部分开发者对 CQRS 的理解是存在误区的,读者在 CQRS 的学习过程中需要关注概念的理解。《悟道领域驱动设计》一书针对事件溯源提供了3个可以运行的案例代码,它们没有依赖任何领域驱动设计框架,通过阅读这些案例,读者可以非常轻松地掌握事件溯源的原理和实现方案。案例代码的获取方式见本书前言结尾的“读者服务”。
第五阶段,需要掌握领域驱动设计下的一致性实现方案。这里的一致性包括聚合内的强一致性以及跨聚合的最终一致性。在战术设计介绍 Repository 时,会涉及一些一致性的讨论,但 是由于一致性太重要了,直接关系到业务操作结果的正确性,所以需要单独探讨。
第六阶段,学习领域驱动设计的战略设计和领域建模。先学习战略设计,理解限界上下文、上下文映射及子域的概念,之后学习事件风暴法进行领域建模。战略设计和领域建模之所以被放在靠后的阶段,是因为只有充分理解了领域驱动设计的战术设计,有了一定的知识储备,才能清晰地理解战略设计和领域建模。
第七阶段,综合实践。领域驱动设计不是孤立的理论体系,不能脱离实际研发过程。本阶段的目标是掌握如何将领域驱动设计融入其他开发理论中,例如,研发效能、测试驱动开发、 敏捷开发、C4 模型等。研发效能章节的学习旨在提高开发效率,改变业界对领域驱动设计笨重、慢、糟糕等刻板的印象,其中涉及的知识包括脚手架、代码生成器、静态代码扫描、低代 码等。敏捷开发章节的学习则帮助读者掌握敏捷开发理论,并将领域驱动设计融入实际的敏捷 开发中。C4 模型章节的内容有助于读者掌握架构可视化的技能,合理地表达架构设计思路。
第八阶段,案例实战。直播带货和 AIGC(尤其是 ChatGPT)是目前业界最火爆的两个概 念。本书针对这两个场景分别提供了代码案例。这两个案例完全采用本书的知识点进行实现, 代码完全开源且可以正常运行。通过实战案例阶段的学习,可以将繁杂的知识融会贯通,使领 域驱动设计真正成为读者具有竞争力的技能。
根据该学习路线,本书领域驱动设计的知识体系全景图如图2所示。
图2 本书领域驱动设计的知识体系全景图
以上摘自《悟道领域驱动设计》一书~~
领域驱动设计是当前一些大厂对高级技术职位的必备技能!
《悟道领域驱动设计》一书作者基于多年在大厂的实战经验,紧密结合自身实际场景,汲取了之前领域驱动设计理念的精华部分,并将其浓缩到本书中。
↑限时五折优惠中↑
本书深入浅出地介绍了领域驱动设计的核心概念,并通过具体案例展示了在实际项目中如何应用领域驱动设计。它通过生动的实例,将抽象的领域驱动设计原则转化为切实可行的落地实践,助力读者将PPT 上的空谈理论转化为可行的解决方案。相信通过阅读本书,读者能够更好地理解领域驱动设计的核心理念,并将其应用于实际项目中。
无论你是初学者还是资深开发者,都能从本书中获得宝贵的知识与灵感。
限时五折优惠中,快快抢购吧!
发布:刘恩惠
审核:陈歆懿
如果喜欢本文 欢迎 在看丨留言丨分享至朋友圈 三连 < PAST · 往期回顾 > 书单 | 10月新书速递!