《领域驱动设计精粹》读书笔记

DDD同时提供了战略和战术工具,来帮助你设计和实现高价值的软件。P1
DDD的战略设计工具可以帮助你和团队做出最有竞争力的软件设计选择和业务整合决策。P1
DDD的战术实施工具可以帮助设计实用的软件,它能对业务的运作方式精准建模。P1

软件项目,经常会遇到相同的情景,团队成员都在努力的维护着系统稳定,每天面对着代码和数据打补丁。 P5

  • 软件开发被视为成本中心而非利润中心。
  • 开发人员热衷于技术并通过技术手段解决问题,而非深入思考和设计,这会导致开发人员不断的追逐新技术。
  • 过于重视数据库和数据模型,而非业务流程和运作方式。
  • 对于需要根据业务命名的对象和操作,没有引起重视,而是自以为是的命名。这就导致交付的软件和业务所拥有的心智模型产生巨大的分歧。
  • 业务干系人常常闭门造车,设计无人问津的需求。
  • 频繁而精准的项目估算会占用大量精力和时间
  • 项目中存在错误的抽象级别
  • 服务集群紧耦合

如果你担心周详的设计会带来高昂的软件开发成本,那么设想一下,将来为了维护甚至修缮一套糟糕设计的软件就需要付出更为昂贵的代价。当我们把软件为左你的公司与其他公司之间的差异,并依靠它带来可观的竞争优势时,尤其如此。P7

有效设计可以满足商业组织希望借助软件超越竞争者的诉求。P7
有效设计可以驱动企业去思考哪些核心业务必须成为其竞争力,还可以指引构建正确软件模型的方向。P7

战略设计强调的是业务战略上的重点,如何按重要性分配工作,以及如何进行最佳整合。P8

限界上下文是语义和语境上的边界。这意味着边界内的每个代表软件模型的组件都有着特定的含义并处理特定的事务。P13

团队在限界上下文中发展了一种语言用于表达其边界内的软件模型,这一语言由在该限界上下文中开发软件模型的每个团队成员所使用的。这就是通用语言,团队成员间交流使用它,软件模型实现的也是它。P15
(通用语言是团队自己创建的公用语言,团队中同时包含领域专家和软件开发人员)

一个团队应该在一个限界上下文中工作,每个限界上下文应该拥有一个独立的源代码仓库。P17

团队方能实现最佳的建模成果:限界上下文与子域之间一一对应。在某些情况下,一个限界上下文中有可能存在多个子域,但这并非是最理想的建模结果。P52

子域代表的是一个单一的,有逻辑的领域模型。P52

子域的三种主要类型:核心域,支撑子域,通用子域。P53

核心域必须与其他限界上下文进行集成,这种继承关系在DDD中成为上下文映射(Context Mapping)P58

两个不同的限界上下文中存在着两种通用语言,这个关联也代表着两种语言之间的转译过程。P59

上下文映射的种类:合作关系,客户--供应商(ACL防腐层,OHS开放主机服务),
各行其道。P60

接线上下文的集成方式:基于SOAP的RPC,RESTful HTTP,消息机制。P69

消息机制应支持至少一次投递来保证所有消息最终都会被收到。这也意味着订阅方限界上下文必须实现成幂等接受者。P78

一个实体模型就是一个独立的事物。每个实体都拥有一个唯一的标识符,可以将它的个体性和所有其他类型相同或者不同的实体区分开。P86

聚合是由一个或多个实体组成,其中一个实体被称为聚合根。聚合的组成还可能包括值对象。P87

一个值对象,或则更简单的说,值,是对一个不变的概念整体所建立的模型。P87

聚合的经验法则:P91

  • 在聚合边界内包婚业务规则不变性:聚合的组成部分应该由业务最终决定,而且要以那些在一次事物提交中必须保持一致的内容为基础。
  • 聚合要设计的小巧:每个觉和的内容闸弄空间和事物包含范围应该相对较小。带来的另外的好处,更容易测试。
  • 只能通过标识符引用其他聚合
  • 使用最终一致性更新其他聚合

贫血领域模型(Anemic Domain Model),除了共有访问器(Getter和Setter)之外没有包含任何真正的业务行为。P99(一个缺少内在行为的领域对象)

对每一个即使发生的时间范围,应该坚定地考虑把两个实体恒秉到同一个聚合的边界之内。
对于每一个在给定等待时间内更新的响应聚合,将使用最终以行更新其他其他聚合。P107

领域事件是一条记录,记录着在限界上下文中发生的对业务产生重要影响的事情。P111

领域事件类型的名称应该是对过去发生的事情的陈述,即动词的过去式。P114

尽管事件通常都是用户在用户界面发起的命令导致的,但有时领域事件可能由其他原因引起,例如到期的计时器。P118

事件溯源可描述为,对所有发生在聚合实例上的领域事件进行持久化,把他们当做对聚合实例变化的记录。P119

事件风暴是一种快速的设计技术,让领域专家和开发人员都可以参与到这个快节奏的学习过程中。它聚焦于业务和业务流程,而非名词概念和数据。P124

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335