有关领域驱动设计的只言片语

在创建微服务的过程中,DDD可以在一下4个主要领域发挥作用:

  • 战略设计: 这一阶段的主要工作就是界限上下文的设计,但上下文图(Context Map)与其他模式也同样十分重要。
  • 内部构建块: 在设计一个界限上下文的内部结构时将用到DDD中的多种战术模式,例如,实体、聚合、repository
  • 大比例结构:通过有序演化与职责层模式创建结构
  • 精炼:通过精炼方法,从一个已经成熟的系统中提炼出一个核心领域

任何一个具有高复杂度的业务领域都由一个或多个界限上下文组成,每个上下文负责领域中的一部分内容。每个界限上下文都包含用于描述领域的模型,同时也定义了这些模型所代表的意义的边界。以一个客户对象为例,每个界限上下文都是按照独有的模型与视角来定义这个客户对象的。

上下文图描述了系统中的所有界限上下文,以及他们之间的相互关联及上下文之间的契约。

以下是界限上下文之间常见的关系模式:

  • 共享内核模式(Shared Kernel) : 它表示两个上下文或模型之间共享某个领域的一个子集,包括代码在内。这种模式将增加系统的依赖。
  • 客户 / 供应商模式(Customer / Supplier): 某个上下文将扮演客户的角色,它将从另一个扮演供应商角色的上下文中请求特性。
  • 防崩溃层(Anticorruption layer,ACL): 某个客户端将利用转换器(translator),将其自身的模型与其他模型进行隔离。在将系统转型为微服务或自包含系统(Self-Contained,SCS)架构时,这是一种非常有趣的选择,ACL将表现为一个系统的护罩,以抵御来自外部的侵扰。

聚合是由多个领域对象构成的一个逻辑组,其中的对象将作为一个整体进行处理。聚合中的某个实体将成为聚合根,它负责接收所有外部请求,并负责整个聚合的生命周期
对于僵硬的架构或是过于复杂的系统来说,可以选择创建一个跨界限上下文的大比例结构,让这个结构随着对于高层次概念的理解不断加深而逐渐进化。
职责层模式是另一种在界限上下文之内创建一个内部结构的结构模式,其思想是按照职责进行结构的创建,而微服务的结构也可以应用相同的概念进行设计。

  • 基础设施层:在基础设施服务中解决交叉问题。
  • 存储层: 数据访问及持久化技术层。
  • 领域层:领域层有业务实体和业务逻辑,是应用程序的中心。
  • 应用服务层: 提供对消费者的响应动作
  • Web层: 应用程序的消费者

Bounded Context创建的模型较小,而且内聚性更高,同时维持了模型之间的边界


What is the Core Domain?

The core domain is the part of the domain most closely associated with the strategy of the company.

Definition of Strategy

I offer the following definition for the strategy of a company:

Strategy refers to objectives as a function of environment and available resources, followed by the allocation of these resources, in order to create value for customers while simultaneously creating profit for the company and its employees.

A few remarks concerning this definition:

  • A well-defined strategy must outline the priorities around which employees concentrate their time and effort
  • Profit certainly means financial gain, but it also includes job satisfaction and career advancement for the employees, with similar benefits for the customers. “Don’t be evil,” as they say.
  • Strategy is dynamic; it is changing or will change over time because the environment is changing, and with it the objectives

What is a Support Domain?

A support domain is a part of the domain that indirectly supports the core domain without actually belonging to it.

Typically, this is a thing that everyone needs, yet no one wants to pay for. The reason is that the value added, taken in isolation, is weak. For example, bookkeeping is indispensable in many banking activities, but no one wants to pay for it.

What is a Generic Domain?

A generic domain is one that is universally well-known, without any need for specialization in the core domain.

Some classic examples are accounting, human resources, and project management. These domains are widely known, sometimes even including their various sub-fields. In technical terms, this could for instance be an optimization tool for finding a path in a graph (and many problems, I might add, can be boiled down to a graph). Options to consider here, naturally, would be open source, software packages, outsourced development, and, lastly, in-house development. In this latter case, it would be pertinent to ask the following questions: Is it worth my while to write the software? Why not purchase it off-the-shelf? Why not outsource it?

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

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,294评论 0 10
  • 9点40,嗯,今晚的你比较乖,睡的还算早。就快要一岁的宝宝了,突然间好是不舍,长得的确是有些快了。 盯着你看了很久...
    来小样儿阅读 718评论 0 2
  • 一代芳华,一世青春:“一场致青春的幻灭,一曲哀悲鸣的赞歌”! 昨日,看了冯小刚电影《芳华》,一整晚,心情都不怎么好...
    热情到过关阅读 208评论 0 0
  • 二十四岁的光旭皇弟: 你好啊。 人生易老天难老,岁岁重阳,今又重阳,整整二十四岁了。 ...
    光旭皇弟阅读 167评论 0 0
  • 具体的代码请移步githubGitHub:https://github.com/Ewall1106/mall 1、...
    ComfyUI阅读 7,537评论 8 28