什么是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;
    }
}

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

查看所有标签

猜你喜欢:

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

当下的启蒙

当下的启蒙

[美] 史迪芬·平克 / 侯新智、欧阳明亮、魏薇 / 浙江人民出版社 / 2018-12 / 159.90

[编辑推荐] ● 比尔•盖茨最喜爱的一本书。理查德·道金斯心中的诺贝尔文学奖作品。尤瓦尔•赫拉利2018年最爱的书之一。 ● 当代最伟大思想家史蒂芬·平克全面超越自我的巅峰之作,一部关于人类进步的英雄史诗。 ●《当下的启蒙》用数据和事实揭示出世界的真相:不是黑暗,而是光明;不是丧,而是燃;我们没有退步,而是一直在进步,还将继续进步。用这本书点燃生活的勇气,亲手创造更美好的未来。 ......一起来看看 《当下的启蒙》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具