无处不在的语言-正确性和可用性之间的冲突


10

域驱动设计的核心部分是在整个系统中一致使用通用语言-在对话,代码,数据库模式,UI,测试等中。

我参与的一个项目已经有一个由国际标准组织定义的完善的领域语言。

但是,我们正在做的工作是针对公共网站的,该域的“正确”术语不一定代表公众通常如何使用和理解它们。

目前,我们正在使用的折衷方法是在所有地方都使用“官方”术语,但在接受标准(指的是UI组件,我们使用非正式名称)中除外。

这似乎是一种合理的方法吗?


你能提供一个例子吗?那我可以给出更详细的答案。您是否需要为它们限制术语,或者存在含义完全不同的冲突术语?是否可以在非正式用语和领域语言之间找到共同点?
猎鹰

1
自从我读了Evans的那本书以来已经有一段时间了,但是我认为领域专家会使用无所不在的语言吗?我当然不会期望用户理解域专家的所有术语,所以我只会向用户提供您所称的非正式名称。
Kaleb Pederson

Answers:


7

是的,这似乎是合理的。如果目标受众不理解您的语言术语或对它们的理解有误,则以最终用户的可用性为准。

典型用户不理解的程序或内容几乎没有价值。更重要的是,如果您只想向他们展示冰山的一角,因为它们不是而且永远不会成为领域专家。

通常,当您在开发过程中谈论领域时,每个人都会理解该语言,因为它是准确的并且所有人都在领域内。但是,如果通过将内容传递给域的外部人员来创造业务价值,则应尽可能简单地做到这一点。使用最不容易被误解的措辞和语言,并在用户界面中使用它们。

在您的代码中保留正确的语言,并与与该域有关的人员进行交流。这些人是拥有规范的人,并且是应用程序的关键用户,是与您讨论业务逻辑细节的人。在极少数情况下,您确实会与对域名没有太多了解的用户真正讨论大多数业务逻辑细节,并且无需深入研究,然后将其语言合并到您的域语言中,因为他们完全有一种通用的语言(可能并非如此)。

但是,请确保前端开发人员了解您的非正式术语及其相应的领域术语。


1

我认为,回答此问题的最简单方法是在以完全不同的语言显示UI时,在要绘制线条的位置精确绘制线条。

如果您的最终用户需要查看梵文内容,您将如何弥合UI和代码(以及其他内部通信)之间的差异。


说得好。这指出了“矮胖问题”:单词不仅仅是一个替代品,它们指的是人们所知道的与单词及其用法无关的事物。动物例如理解“温度”的概念。当单词只是概念的象征时,我们就会迷上单词。概念是重要的事情。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.