• 书籍推荐:《实现领域驱动设计》DDD书籍概览及百度云免费下载


    作者简介

    Vaughn Vernon是一个经验丰富的软件工匠,在软件设计、开发和架构方面拥有超过25年的从业经验。他提倡通过创新来简化软件的设计和实现。从20世纪80年代开始,他便开始使用面向对象语言进行编程。90年代初期,便在领域建模中应用了领域驱动设计。

    作者的初衷很屌

    本书中的绝大多数例子都是使用Java语言编写的。我本来可以使用C#的,但是我有意识地使用了JAVA。
    首先,我认为Java社区正在抛弃好的软件设计和开发实践。xxxxxx, 所以我想鼓励Java社区重新回到领域建模中来。(此外,在.NET社区中已经有很好的DDD资源了,如Jimmy Nilsson的《领域驱动设计与模式实战》)

    书籍概览

    第一章:DDD入门

    介绍DDD的好处,以及如何尽可能多的去实现DDD。在应对复杂的软件系统时,DDD可以为你的项目和团队带来什么。

    第二章:领域、子域和限界上下文

    介绍领域、子域和限界上下文是什么?我们为什么要用它们,如何使用。

    第三章:上下文映射图

    上下文映射图帮助我们理解业务领域、模型间的边界,一级这些模型之间的集成方式。

    第四章:架构

    介绍分层架构的其他方式,如六边形架构、面向服务架构、REST、CQRS、事件驱动(管道和过滤器、长时处理过程、事件源)

    第五章:实体

    介绍DDD的战术模型中,很多优秀的实体设计例子。

    第六章:值对象

    介绍如何设计以领域为中心的测试,如何实现值对象。

    第七章:领域服务

    学习何时应该使用领域服务而不是实体或值对象,以及如何使用领域服务来处理业务逻辑和技术上的集成。

    第八章:领域事件

    了解领域事件为何如此有用,以及使用领域事件的不同方法。

    第九章:模块

    学习如何在不同的项目中使用模块

    第十章:聚合

    如何利用聚合在不同的小规模对象集群间创建一致性边界,从而降低模型的复杂性。

    第十一章:工厂

    介绍DDD中实现工厂的技巧。

    第十二章:资源库

    学习如何利用ORM来实现资源库,一种采用基于网格的分布式缓存,另一种采用NoSQL的键值对存储。

    集成限界上下文

    如何通过上下文映射图来集成不同的模型。

    应用程序

    学习客户端如何使用模型,如何传递数据,如何使用DTO将数据在模型与用户界面之间传输。

    如何阅读这本书

    首先掌握以下这些概念:

    通用语言:

    通用语言(Ubiquitous Language)作用域某个限界上下文,它对领域建模是非常重要的。

    战略建模:

    界限上下文是一种概念上的边界,领域模型变工作于其中。同事,限界上下文为通用语言提供了一套环境,项目成员通过通用语言来表达软件模型,如下

    限界上下文和通用语言

    在战略设计的过程中,你将发现上下文映射图是非常有用的。你的团队将使用上下文映射图来理解项目的范围。如下

    上下文映射图展示界限上下文之间的关系

    架构

    六边形架构风格,领域模型位于软件的中心

    战术建模

    战术设计的一个重要模式是聚合,聚合可以由单个实体组成,也可以由一组实体和值对象组成。必须在聚合的整个生命周期中保证事务上的一致性。
    聚合实例通过资源库进行持久化,另外,对聚合的查找和获取也通过资源库完成

    另两个聚合类型,他们拥有各自的事务一致性边界

    领域服务

    在领域模型中,有些业务操作并不能自然地放在实体或值对象上,此时我们可以使用无状态的领域服务(domain service)

    领域服务执行特定于领域的操作,其中可能涉及到多个领域对象

    领域事件

    表示领域模型中发生的重要事件。有多种方式可以对领域事件进行建模,在对聚合进行命令操作时,聚合本身将发布领域事件。

    领域事件可以由聚合发布

    模块

    模块中包含的领域对象应该是内聚在一起的。

    一个模块包含并组织内聚字啊一起的领域对象

    读书笔记

    1. 实现领域驱动设计(DDD)学习-领域服务、领域事件、模块、聚合、工厂、资源库
    2. 实现领域驱动设计(DDD)-值对象的特征、使用及实现

    3.实现领域驱动设计(DDD)中对实体的设计及使用

    4.领域驱动设计(DDD)架构整理(分层架构、六边形架构、SOA架构、REST、CRQS、事件驱动架构等)

    5.理解DDD中的限界上下文,整理自实现领域驱动设计

    6.DDD中的领域、子域和限界上下文的说明

    7.DDD(Domain-Driven Design)领域驱动设计入门说明及示例

    阅读感受

    首先,阅读这本书的初衷是为了解决当时面试时的一个疑惑。

    (当时对领域建模完全没有概念)

    面试官问了一些当时自己不懂的技术之后继续追问..
    
    面试官:“你知道领域建模是什么吗?”
    
    我:    “知道,就是根据业务进行项目的搭建、包划分、业务编写。”
    
    面试官:“那领域建模有哪些方法呢?”
    
    我:    “对业务要有很深的理解,然后又对应的处理方式....”
    
    面试官:“那具体是有哪些方法呢?领域建模是有一些基本方式的”
    
    我:    “对业务有很深的把握就好了吧,具体方法我不知道..”
    
    面试官:“哦,我知道了...  ”
    
    ... 两天后
    
    面试官回复:“技术有点差,不适合我们的核心代码开发,走业务线呢可能也不满足条件...”
    
    

    现在如果有人问我领域模型是什么的话,我估计能简单回答下,更加得心应手、熟练的应用还是要靠实际的业务来支撑吧。

    读完这本书之后,感觉到作者的目的其实很明确。将我们实际开发过程中碰到的一些高层次问题进行了规则化处理。关于服务的架构方式、实体和对象的建立、集成服务的处理都用一种‘通用语言’进行设计。只要有实际开发经验的人,基本上都能从书中找到一些我们在开发当时碰到问题的影子。

    它并不是很深奥的技术书籍,而是将我们开发中的术语、流程、方式进行通用化、规则化的整理。可能是一些概念上的东西需要推敲、实例论证才会好理解一点。

    对于各阶段的程序员来说都是很有帮助的,欢迎下载阅读

    《实现领域驱动设计》百度云下载

    链接: https://pan.baidu.com/s/1IMwMGtIsuakZL5RC85uIBQ 提取码: sxkb

  • 相关阅读:
    LRU缓存机制的实现
    用docker配置mysql主从复制
    策略模式,以及最近用到的策略模式
    2021"MINIEYE杯"中超(7~10)补题
    2021"MINIEYE杯"中超(6)补题
    2021"MINIEYE杯"中超(5)补题
    2021"MINIEYE杯"中超(4)补题
    2021"MINIEYE杯"中超(3)补题
    2021暑期个人赛4补题 (待补充)
    2021暑期个人赛2补题 (待补充)
  • 原文地址:https://www.cnblogs.com/yulinfu/p/15364875.html
Copyright © 2020-2023  润新知