语境是指语义的环境(Semantic Context)。同一个词在不同的语境下,语义很可能完全不同。但是大多数角色都不一定知道其他角色的存在,更不用说理解他们的语境了。
我们各自主观意识中形成的客体,我们能表达给其他人的关于客体的描述,以及我们试图在多个人中间建立的对这个存在的共识,这三者是不等价的。而这种不等价,就是语义分歧的根源。
如何消除语义的分歧呢:
- 发现不同的语境。我们必须保留语义差异来提供差异化的流程和服务,但是并不需要引入太多的分支,避免给用户带来不必要的复杂性。
- 定义概念。一旦发现了一个新的语境中,存在词语表达相同但语义不同的概念,那就需要准确描述这些概念了。
- 语义建模。当完成了单个概念的定义后,就需要把不同概念引入到同一个语境中,也就是将两个不同的语境进行合并。
- 反馈修正。必须要与所有人重新确认并多次调整,才有可能找到基本正确的统一语境。
- 公布、维护和使用统一的语境。指的是不断使用和打磨实体定义,最终为企业带来统一语境。这个过程就是从自然语言到需求描述、到域模型定义的过程,未来也会延伸到接口定义、模块设计、代码实现、上线使用等。
建模过程中最难的一步,就是从不同语境中的主体那里,推导出一组统一语境中的实体。
此文章为5月Day25学习笔记,内容来源于极客时间《郭东白的架构课》