什么是DDD领域驱动设计的统一语言?

栏目: 后端 · 发布时间: 5年前

内容简介:统一语言也称为无处不在的语言、通用语言、泛在语言,无处不在的语言是在有界的上下文中建模的,在其中标识表达了业务领域的术语和概念,并且不应该有歧义。无处不在的语言是Eric Evans在“域驱动设计 - 处理软件核心中的复杂性”中使用的术语,用于构建由团队,开发人员,领域专家和其他参与者共享的语言。无论您的软件是如何设计的,都需要在分隔的上下文中反映清晰且建模的泛在语言。

统一语言也称为无处不在的语言、通用语言、泛在语言,无处不在的语言是在有界的上下文中建模的,在其中标识表达了业务领域的术语和概念,并且不应该有歧义。

无处不在的语言是Eric Evans在“域驱动设计 - 处理软件核心中的复杂性”中使用的术语,用于构建由团队,开发人员,领域专家和其他参与者共享的语言。

无论您的软件是如何设计的,都需要在分隔的上下文中反映清晰且建模的泛在语言。

要产生清晰的无所不在的语言,您必须了解更多业务。

无所不在的语言的特征

  • 无处不在的语言必须在领域模型中表达。
  • 无处不在的语言统一了项目团队的员工表达语言。
  • 无所不在的语言消除了领域专家的不准确和矛盾。
  • 无所不在的语言不是领域专家强加的业务语言。
  • 无处不在的语言不是行业中使用的语言。
  • 无处不在的语言随着时间的推移而发展,它并不是完全在一次会议中定义的。
  • 应该拒绝不属于泛在语言的概念。

常见问题

我想强调我们应该避免的想法:

  • 由于缺少通用语言导致“翻译”,这对域模型不利,并导致错误的域模型的创建。
  • 由于缺乏共同语言,团队成员使用不同的术语而没有意识到。
  • 即使存在,也不使用普遍存在的语言进行通信。
  • 由技术团队创建用于构建域模型的抽象,域专家无法理解。
  • 技术团队无视领域专家参与领域模型,认为对领域专家而言过于抽象。但域专家必须参与,因为谁可以验证构建的域模型?

如何开发无所不在的语言?

你可能会问自己:但是如何开发无所不在的语言?有什么方法?谁参与了?有什么过程?

第一点是即使是领域专家也可能彼此不同意,只有通过公开讨论,分析现有文档,词典,标准等,我们才能提出更好的语言。

  1. 画:在白板上表达您的业务领域,不要担心它们是否是正式设计。
  2. 创建词汇表:定义开发所有术语的词汇表。
  3. 使用事件风暴:领域专家和开发人员可以使用Event Storming实现业务流程学习的快速循环,从而促进泛在语言的发展。
  4. 查看并更新:准备好以敏捷方式查看和更新​​生成的内容。

这些只是开发泛在语言的第一步。

沃恩弗农说:

代码是无所不在的语言的持久表达,准备放弃难以及时更新的图纸,术语表和其他文档。

代码需要表达无所不在的语言

想象一下,您正在开发电子商务系统,产品所有者提出以下要求:

“系统必须允许更改客户的电子邮件。”

简单,不是吗?但是你会如何在代码中表示这一点?

以下是一个实施示例:

public class People : Entity
{
    public string Name { get; set; }
    public string Email { get; set; }
    ...

    public void Update(string name, string email, ...)
    {
        if(!string.IsNullOrEmpty(name))
        {
            Name = name;
        }

        if(!string.IsNullOrEmpty(email))
        {
            Email = email;
        }

        ...
    }
}

你怎么看待这段代码?你认为它真的反映了无所不在的语言吗?

请记住,聚合,值对象,领域服务,存储库,命令,事件等需要表达泛在语言。

请参阅下面反映泛在语言的代码示例:

public class Client : Entity
{
    public string Name { get; private set; }
    public string Email { get; private set; }
    ...

    public void ChangeEmail(string email)
    {
        Email = email;
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

别怕,Excel VBA其实很简单

别怕,Excel VBA其实很简单

Excel之家 (Excel Home) / 人民邮电出版社 / 2012-10-1 / 49.00元

《别怕,excel vba其实很简单》考虑到大多数读者没有编程基础的实际情况,用浅显易懂的语言和生动形象的比喻,并配合大量插画,介绍excel中看似复杂的概念和代码、从简单的宏录制、vba编程环境和基础语法的介绍,到常用对象的操作与控制、excel事件的调用与控制、用户界面设计、代码调试与优化、都进行了形象的介绍。 《别怕,excel vba其实很简单》适合想提高工作效率的办公人员,特别是经......一起来看看 《别怕,Excel VBA其实很简单》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具