当前位置: 首页 > news >正文

架构中如何消除语义的分歧?

1、发现不同的语境

每一个交互场景其实都存在着多个角色,每个角色都有自己的独立语境。比如商家从供应商那里采购实体商品这个场景,就有它的独立语境。而商家给供应商打款,虽然交互双方没有变化,但是新的场景又会带来的语境。

我们的目的不是为了寻找绝对意义上的语义保真,而是为了给架构活动建立统一的语义环境。所以这个发现,绝不是一个无止境的探索。我们必须保留语义差异来提供差异化的流程和服务,但是并不需要引入太多的分支,避免给用户带来不必要的复杂性。

2、定义概念

一旦发现了一个新的语境中,存在词语表达相同但语义不同的概念,那就需要准确描述这些概念了。就像我们上节课给出的例子。你不但要给出一个概念,更要准确描述这个概念背后的场景。

  • 在这个过程中,你需要跟不同参与方进行访谈,然后通过准确定义概念来发现不同语境之间的差异点。最后再试图把多个概念放在一起,看它们是否能完全自洽。
  • 在这个过程中,你需要不断修正自己下的定义。如此循环往复,来螺旋式提升你跟参与者的认知。
  • 在这个过程中,你的角色不是 PMO,所以绝不是发一封邮件,通知大家各自完成一页 Wiki Page 就完事了。而是要深入到每个语境中,理解每个角色的真实诉求和语义差别。

总的来说,这仍然是一个深度思考和不断探索的过程。

3、语义建模

当完成了单个概念的定义后,就需要把不同概念引入到同一个语境中,也就是将两个不同的语境进行合并。这个过程,其实就是把上节课给出的两张图合并成一张图。图中的绿色部分,也就是被融合的实体的语义,需要与融合前语境中的语义基本保持一致。而蓝色部分,指的是每个实体有各自的语义,需要保留。

4、反馈修正

一旦形成了统一的语境,就需要跟所有参与者确认这个统一语境的正确性。要时刻记住,你作为架构师并没有什么特殊之处,也只是一个独立的个体。你的认知也仅仅是存在于自己语境中的认知,所以必须要与所有人重新确认并多次调整,才有可能找到基本正确的统一语境。

5、公布、维护和使用统一的语境

指的是不断使用和打磨实体定义,最终为企业带来统一语境。这个过程就是从自然语言到需求描述、到域模型定义的过程,未来也会延申到接口定义、模块设计、代码实现、上线使用等。

最终,这些过程都对之前的定义形成反馈闭环。如果你把语义的定义和维护做到极致,那么它就是一个基于标准化、中央化的实体定义和数据字典,以及围绕这些定义而制定的语义冲突解决(Conflict Resolution)的管控流程。也就是说,最终会建设一个完整的语义管理体系。

需要注意的是语境的差异。建模,其实已经默认所有的客体都放在了同一个语境中。我们也不再区分不同主体视角中的客体,而将它们统称为实体。但是实际上,建模过程中最难的一步,就是从不同语境中的主体那里,推导出一组统一语境中的实体。

所谓统一语义,并不是要求你重新学习一门标准化的语言,然后再跟其他参与者交流。统一是语义层面的统一。

此文章为5月Day14 学习笔记,内容来源于极客时间《郭东白的架构课》,推荐该课程。

http://www.lryc.cn/news/68446.html

相关文章:

  • 「免费版Axure」原型设计工具!
  • OPNET Modeler 例程——ALOHA和CSMA的性能对比
  • kali整体版本更新方法,为啥更新?
  • 微服务之服务容错
  • js 计算日期加减、某某天后的日期、星期几、几月、闰年
  • Vue3迎来升级,助力企业数字化转型
  • Java面试知识点(全)- Java并发- Java并发基础一
  • 淘宝商品详情数据采集,支持高并发请求
  • Java版spring cloud 本工程项目管理系统源码-全面的工程项目管理
  • 瑞吉外卖 - 后台系统退出功能(4)
  • JavaScript 基础 API DOM(一)
  • Java基础知识:1,DOS命令
  • NEFU ERP 企业资源计划[1] 详细知识点
  • Science文章复现(Python):图1 - Aircraft obs(机载的观测 CO2)
  • 安全基础第十一天:nginx
  • 设计模式之【命令模式】,方法调用的花式玩法
  • 企业需要专业电子邮件地址的4大原因
  • 国民游戏王者荣耀的真实地图开发之路
  • 浅谈IDC数据中心综合布线第二篇——结构化布线
  • 电脑格式化后数据恢复软件EasyRecovery16
  • (2020)End-to-end Neural Coreference Resolution论文笔记
  • kafka命令
  • mybatis多表查询
  • kafka 从入门到精通
  • 写PPT没有思路, 这些底层方法论让你灵感爆棚……
  • 【小沐学Python】Python实现Web服务器(Flask+Vue+node.js,web单页增删改查)
  • 甘肃非煤矿山电子封条 智慧矿山 opencv
  • 工业识别与定位系统源码解决方案
  • PCL学习之滤波算法
  • 第二章 链表