【郭东白架构课 模块二:创造价值】24|节点四:如何减少语义上的分歧?

news2024/11/15 10:17:17

你好,我是郭东白。上节课我们通过一个篇幅比较长的电商案例,详细展示了为什么在架构活动中会出现语义分歧。同时也描述了,架构师在统一语义这个环节中所要创造的真正价值是什么。即,看到不同角色之间语境的差异,然后通过一个完整的、自洽的、相互兼容的设计,来满足所有角色的诉求。

那么这节课,我们来继续分析语义分歧的根源,然后看看怎么消除语义分歧。

语义环境的差异

语境是指语义的环境(Semantic Context)。我们上节课提到了,同一个词在不同的语境下,语义很可能完全不同。但是大多数角色都不一定知道其他角色的存在,更不用说理解他们的语境了。

如下图所示,展示了语境的差异:

在这里插入图片描述

这张图里有多个角色,每个角色都有自己的语境。在两个角色的交互过程中,通过统一语境又出现了新的语境。

比如“平台—用户语境”或者“平台—商家语境”,在图中用不同颜色的圆圈来表示。如果这个统一的语境能够扩大,便可以包含所有角色,最终形成全局统一的语境。

语义分歧的根源

事实上,我们上节课举的由于语境差异而带来语义分歧的例子,并不是特例。想想看,我们在架构设计中、需求实现中肯定都能见到不少类似的例子。为什么会是这样呢?这其实是哲学领域里争论了数百年的问题。

如下图所示:
在这里插入图片描述

假设物理世界有一个存在(Being,名词),也就是图中的绿色部分。那么主体,简单来说就是你和我。我们可以在各自的意识中对这个“存在”形成认知,也就是图中的客体。

唯物主义者认为,存在是先于主体和客体的。而且是客观的,独立于我们的意识而存在的,不以你我的意志为转移的。

而主观唯心主义者认为,只有你我意识中形成的客体是真实存在的,而那个“存在”却不是第一性的。

我们先不讨论谁对谁错。但是在“世界上所有人都有认知分歧”这一点上,大家反倒是没有分歧的。也就是说,我们各自主观意识中形成的客体,我们能表达给其他人的关于客体的描述,以及我们试图在多个人中间建立的对这个存在的共识,这三者是不等价的。而这种不等价,就是语义分歧的根源。

目前来讲,我们至少不能把多个人的意识拉通到一个共享的认知领域里。除了那些因为大量日常交互而已经形成固定语境的情况外,大多数时候,不同角色之间的语境都是不同的。因此,同一个词对于不同的人来说,在语义上肯定是有分歧的。所以我们能做的,就是想办法把这个客观存在的语义上的分歧表达出来。然后试图用文字、图片、建模工具等方式来准确描述语义,减少甚至消除语义上的分歧。

这种由于语境多样性而造成的语义差异,在互联网企业中更为普遍和严重。原因如下:

互联网企业一般是跨国企业,员工的文化、语言和认知本身就有差异。
互联网企业的组织复杂度大,不同角色有不同的视角,他们的认知也有差异。

互联网企业的场景跨度很大,在不同的使用场景下,语义也会发生变化。比如说一件商品,在大促、秒杀、团购、社区团购、物流履约和售后的场景下,含义会有所不同。

互联网时代用户体验迭代很快,不同的展现方式,比如文字、图片、短视频、直播、VR,会把一个实体以不同的方式投射给一个主体,那么主体形成的语义认知必然会有所不同。

信息时代引起了我们生活方式的剧烈变化,一个实体的语义会随着时间而扩充、迁移或者消亡。你翻开随便一本新华字典,看看古代人把“马”这个实体类型分得多么细。而到了现代,你要是能分清楚骡子和马,就算是博学了。

如何消除语义的分歧?

那么如何消除语义的分歧呢?

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

就像我们在上节课给出的实体电商模型图里表示的,这些语境之间有一定的连续性。但如果我们深挖到细节,会发现其中的差异并不小。当然,我们的目的不是为了寻找绝对意义上的语义保真,而是为了给架构活动建立统一的语义环境。

所以这个发现,绝不是一个无止境的探索。我们必须保留语义差异来提供差异化的流程和服务,但是并不需要引入太多的分支,避免给用户带来不必要的复杂性。

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

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

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

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

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

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

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

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

关于建模我还想提一点。我在法则四中强调过必须向技术环境借力。要知道,大多数领域都有相对成熟的工业标准,并不需要发明创造太多的概念。如果真的下定决心去整合一个语境,那么在这之前,你至少要做一次彻底的线上调研,看看是否已经有工业和事实标准存在。
我就曾经见过一位研发人员自己定义了一套国家码。他一口气整出来 240 多个国家,胆子可真大!

小结

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

你作为架构师,所做的工作并不是收集汇总,而是发现不同的语境,找到其中存在的语义上的差异。然后把这些差异描述出来,再给出一个精确的语义定义。最后再和其他参与者一起使用这些更为准确的概念,来完成项目的规划和实施。这才是你在这个节点上真正要创造的价值。

在统一语义的的过程中,你要努力发现整个架构活动中所有不同角色。然后以客观事实、无损的表达和最小化沟通为目的来和他们沟通,从而统一语义。当你能邀请大家到同一个语义环境下做深度讨论的时候,我相信那将会是一个非常美妙的聚会,因为那才是灵魂之间的深度交流!

另外,这两节课我们花费了比较多的篇幅去分析和寻找语义分歧问题的根源。这也是架构师的一个基本技能。其实大多数时候,找到了问题的根因也就找到了解法。

从更深层次上来讲,寻找根因这个方法论也适用于我们整个架构规划。我们之所以要在统一语义这个环节下大功夫,目的就是在定义“我们要解决的问题”上帮助所有参与者达成共识,一起找到那个真正值得耗费大家生命力的 “问题根因”!

思考题

三个作业,任选一个来作答。

  • 你见到过最清晰的领域建模是哪一个?这个模型最终带来了什么样的价值?
  • 领域建模是为了定义我们要解决的问题。很多人号称自己在做领域建模,但往往是代码都写完了去晋升的时候才做。不过,哪怕这么做往往也有价值。你做过这种事后的建模吗?建模帮助你发现了什么问题?
  • 建模的习惯一旦养成了,应用起来还是比较高效的。但是紧接着就会出现模型管理的问题。你碰到过什么好的模型管理的方法吗?不好的呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/494425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

案例2:东方财富股吧文本分析----code模块封装命令行运行版

案例2:东方财富股吧文本分析----code模块封装命令行运行版 0. 先导语1.东方财富股吧文本信息爬取1.1 模块getGuBaNews.py的内容1.2 东方财富股吧文本信息爬取主运行文件run_main_getnews.py内容1.3 命令行运行 2.东方财富股吧文本信息分析2.1 模块gubaNewsAnalyse.p…

『python爬虫』11. xpath解析实战之获取csdn文章信息(保姆级图文)

目录 网页结构分析爬取思路得到所有的文章遍历每个文章得到其中的信息 实现代码总结 欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 网页结构分析 我的csdn主页 https://blog.csdn.net/u011027547我们先找一篇文章…

AI 工具合辑盘点(八)持续更新 之 AI 面部生成工具和AI 角色生成工具

(一)AI 面部生成工具 需要一张真实人物的肖像画来用于你的营销材料?正在寻找具有特定面部特征的模特,但你的预算有限?正在创建你的买家人物,但不想从互联网上窃取图片? 如果是这样&#xff0c…

pytorch——损失函数之nn.L1Loss()和nn.SmoothL1Loss()

文章目录 【回归损失函数】L1(MAE)、L2(MSE)、Smooth L1 Loss详解1. L1 Loss(Mean Absolute Error,MAE)1.1 数学定义1.2 、使用场景与问题1.3 、如何使用 2. L2 Loss(Mean Squared E…

[项目实战] 博客系统实现

水到渠成,冲呀冲呀 文章目录 1 准备工作1.1 在Idea创建一个Maven项目1.2 引入servlet,masql,jackson依赖1.3 准备web.xml文件 2. 数据库建表3. 封装DBUtil4. 创建实体类4.1 Blog类4.2 User类 5. 封装数据库的增删改查5.1 对于blog的操作5.1.1 增加操作5.1.2 根据blogId查询5.1 …

Notepad++配置C语言环境和C++环境

背景: Notepad是我们经常使用的编辑器,我们可以用它编译和运行各种类型的文档,其中就包括了C和C文档。但是编译和运行C或者C文档首先要配置编译环境,下面给大家分享一下如何在NotePad配置C/C编译环境。 工具: NoteP…

在全志V851S开发板上进行屏幕触摸适配

1.修改屏幕驱动 从ft6236 (删掉,不要保留),改为下面的 路径:/home/wells/tina-v853-open/tina-v853-open/device/config/chips/v851s/configs/lizard/board.dts(注意路径,要设置为自己的实际路…

docker-compose部署flume

一、docker-compose部署 1. 依赖的服务/组件 java8flume 1.9.0 2. 下载离线安装包 jdk8https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gzflume 1.9.0https://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.9.0/apache-flume-1.9.0-bin.tar.gzs…

【Python入门篇】——Python基础语法(标识符与运算符)

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句…

鸿蒙Hi3861学习六-Huawei LiteOS(软件定时器)

一、简介 软件定时器,是基于系统Tick时钟中断且由软件来模拟的定时器。当经过设定的Tick时钟计数值后,会触发用户定义的回调函数。定时精度与系统Tick时钟周期有关。 硬件定时器受硬件的限制,数量上不足以满足用户的实际需求。因此&#xff0…

【算法】什么是离散化

作者:指针不指南吗 专栏:算法篇 🐾人类做题的过程,就是个暴搜的过程🐾 文章目录 1.引入2.思路3.模板题 1.引入 特指有序、整数的离散化。 离散化,本质上是一种哈希,它在保持原序列大小关系的前…

肝一肝设计模式【六】-- 装饰器模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 肝一肝设计模式【三】-- 原型模式 传送门 肝一肝设计模式【四】-- 建造者模式 传送门 肝一肝设计模式【五】-- 适配器模式 传送门 文章目录 系列文章目录前言一、什么是装饰器模…

PLSQL Developer远程连接Oracle报错提示:“ORA-12541:TNS:无监听程序”的解决方案及思路

环境: 1、Windows Server 2、远程Oracle数据库:Oracle11g R2 3、PL/SQL程序:PL/SQL Developer Version 11.0.5.1790 (64 bit) 一、思路拆解: 此现象一般定位到远端的监听服务来找问题,在远端查看监听服务状态&#x…

DolphinScheduler 3.1.4详细教程

文章目录 第一章 DolphinScheduler介绍1.1 关于DolphinScheduler1.2 特性1.3 名词解释1.3.1 名词解释1.3.2 模块介绍 第二章 DolphinScheduler系统架构2.1 系统架构图2.2 架构说明该服务包含: 2.3 启动流程活动图2.4 架构设计思想2.4.1 去中心化vs中心化2.4.1.1 中心…

制作帮助中心过程中常见的误区与解决方法?

制作帮助中心是为了帮助用户了解产品和解决问题的重要手段。然而,在制作的过程中,我们可能会遇到一些误区,这些误区可能会导致我们的帮助中心无法达到预期的效果。因此,在本文中,我们将探讨制作帮助中心过程中常见的误…

今年产品经理这么卷,大家怎么面试的呢?

随着互联网行业的快速发展,产品经理这个职位变得越来越重要。产品经理需要具备多方面的能力,如市场调研、用户需求分析、产品设计、项目管理等等。因此,对于企业来说,招聘一名合适的产品经理是非常关键的。 而对于求职者来说&…

中国奇人周兴和——记四川星河建材有限公司董事长周兴和(中)

经商送礼 关押收审 从10多岁就开始闯荡社会的周兴和,可以说是社会大熔炉锻炼出来的奇人。他仅有小学文化程度,但是他的社会经验和社会知识却相当丰富,可以称得上是一个“社会学专家”。他口才超常,其处事能力、应变能力和综合能力…

ASEMI代理ADUM1250ARZ-RL7原装ADI车规级ADUM1250ARZ-RL7

编辑:ll ASEMI代理ADUM1250ARZ-RL7原装ADI车规级ADUM1250ARZ-RL7 型号:ADUM1250ARZ-RL7 品牌:ADI/亚德诺 封装:SOIC-8-150mil 批号:2023 引脚数量:8 工作温度:-40C~105C 安装类型&#…

4.7亿加元!爱立信和加拿大政府巨额投资量子计算

​ (图片来源:网络) 爱立信与加拿大政府的研发合作为期五年,项目价值超过4.7亿加元(约合23.9亿元人民币),主要投入在爱立信位于安大略省渥太华和魁北克省蒙特利尔的工厂。预计将创造数百个工作…

三十岁成功入职京东啦!

我是小九小九不爱喝酒: 自己工作5年后,我成功拿到了京东的offer。下面说下我是如何从传统行业到京东的经历,希望能对你有所帮助。 本科我学的是机械电子工程专业,2013年本科毕业后,同学们大多到各研究所从事智能机器人…