统一语言为什么不能统一(二)

一、背景

在上一篇文章中,重点讲述了统一语言在文化等方面存在的一些差异,这些差异本身也体现了世界的差异,包括国与国之间,人与人之间等的互动是客观存在不一致的,那么统一语言本身而言就无法达到高度统一,但是有可能是可以达到共识的,本篇将从统一语言与其他方面的关系来简单阐述一下统一语言为什么不能统一的问题。

二、统一语言与映射

2.1 模型的映射

最近我也在思考映射这个问题,因为很多情况下人或者机器无法做到全自动的对某一物品或者某一现象将其转换到另外一个层次的表达上。一个很浅显的例子就是我们在开发业务代码的过程中定义出来的业务对象与数据对象通常不是一个,包含的字段方法也有基本的偏差,在DDD的专业书里其实就是映射偏移的本质问题,关于映射偏移后面会有文章探讨,现在我们看一下假如我们身处某一行业或者领域,需要通过业务系统或者线上化来提高效率,那么我们需要做哪些事情能达到这样的目标呢?以下就是我简单梳理出来的一个大概的工作流程:
业务行业—>领域专家—>产品PRD—>技术方案—>领域模型—>数据模型—>代码工程
每个工作流程都从不同的方面反映了我们对业务需求的映射,至于是不是最好的,或者最合适的其实很难去评判,重点是我们找到了一条可行的映射路径,并做出了相应的反馈。

2.2 概念术语到概念解释的映射

现在我们看一下另外一个场景,可能简单到不值一提。有时候我们为了在沟通和交流的时候方便互动和理解,我们会对很多事情做总结概括,这是一种对繁杂事情或者文本的凝练。当然另外一个场景就是数学上的概念符号或者术语,老师在课堂上不会每次用到这个术语都会解释一遍,因此这也让一些记性不太好的同学有点难以理解或者更好的运用概念解题,也就是说概念术语本身可能就很简单,就是一两个词加一些符号就可以了,顶多再加上对应的概念解释说明。这看上去非常简单,但是包含了一个潜在的映射就是概念术语到概念解释的映射。
另外一层映射其实存在于概念解释和问题本身之中,就是说某道题或者某个问题其本身可以简单到套用公式就可以搞定,但是不理解概念解释其实就无法更灵活的运用公式去解题。也就是说懂概念术语或者公式只是第一步,第二步还要懂概念解释,以此达到举一反三的效果。

2.3 阅读到理解的映射

上面说了两个场景的映射,下面我们说一下阅读到理解的映射,这个映射相当于很多映射的一种抽象,更直观的场景就是阅读书籍,在其他场景下就是人的大脑接收收入信号,然后理解再可能就做一些输出性的操作,比如听歌和编程,这种可以并行处理的理解我们也经常能用到。为什么这种映射与统一语言有关系呢,因为有时候不同的人对于同一件事阅读到理解的输入输出是不一样的,因此不同的输出就造成了差异。

三、统一语言与沟通

在这一小节中我们来真正分析一下统一语言在沟通中是如何表达阅读理解的差异的。

3.1 不用统一语言沟通却能懂

这是一种很常见的情况,比如一种比较玄乎的语言表达方式:腹语。当然另外一种就是很默契的那种沟通方式,就是你知,我知,老天爷知。因此在这样的场景下沟通的双方都可能很默契的不会去谈某个词某种某个现象,而是用另外一种指向来指代。通常来说,眼神交流也就意味着确实没有用到统一语言,但是眼神也能表达很多指向。

3.2 用统一语言沟通却不懂

现在我们看一下假设用了统一语言的情况下,是不是也有不懂的时候。举个例子小孩子玩很晚,妈妈说要回家了,天黑了。那么妈妈可能是要说天黑了,你要回家吃饭了。有时候统一语言无法涵盖所有事物,或者没有显示表达真正的意思。那么另外一种情况就是造词,造词的话说明你想用统一语言建立一种新的沟通指向,但是却没有对这个词语做一些解释。很突然的出现一个新词有时候会让习惯了统一语言表达方式的人显得有点恐慌。

3.3 沟通信息没有记录达成共识

上面的情况说了一些沟通前或者沟通中的问题,现在我们看一下沟通后的问题。其实一个比较好的会议或者谈话是要有一个基本的记录来帮忙达成共识。比如有时候我们经过谈话得到的一些信息是自己的大脑已经有意识的记录过了,因此不会有类似于邮件的方式来同步会议纪要。当然我们可以看一下如果一个会议因为一些意见或者争执无法达成一致,然后导致的结果可能就是一种比较混乱的情况,因此这时候说统一语言已经没有什么意义了。

3.4 统一的语言可能是个新词

这个话题上面的内容已经说过了,对于儿童来说这个话题其实不是什么问题,毕竟小朋友们需要各种积累,即使理解不对也不会造成太大问题,这种语言上的理解转换通常不会太难。那么到工作中,如果因为统一语言产生的新词而产生困惑就需要好好探究一下了,毕竟很多东西不是一成不变的。有时候这种新词是某种隐喻的表达,在我看来这个隐喻就类似于近义词,但是还用了比喻的手法,所以新词造出来之后虽然有点恐慌但是也不至于令人无法接受。

四、统一语言与思维

上面讲了与统一语言相关的两个方面,现在我们看一下统一语言与思维方面的内容。这里就简单讲一下思维本身的特性,然后看一下统一语言在思维的影响下是怎么动态变化的。

4.1 思维的驱动性/主导性

有什么样的思维就会做什么样的事情,类似的,统一语言也会被思维驱动更新改变,那么在不同的人来说即使有统一语言也终究变得混乱,统一语言最后沦为一些单薄的词语。

4.2 思维的多变性

思维本身具有跳跃,创新,发散性,因此对于输入的信息会产生多次输出或者内部多次消化,这里对于统一语言也是如此,所以多次重复的调整会驱动统一语言逐步变更,这就会导致信息的传递和使用会产生一个时间差,所以会导致统一语言可能本身就是动态调整逐步达到统一,但是无法真正统一。

五、统一语言与习惯

这个习惯相当于很多词语在逐步表达某个场景进行固定下来的,因此,对于约定俗称的有些土语,俚语,专业术语等等是比较容易接受的,但是在业务发展过程中体现出的业务活动其实有时候会随着业务规则的变化而变化,所以会变的捉摸不定。因为如果需要的话,或者进行一次大型项目开发的时候我们需要很快的将业务上的统一语言定义下来。但是在定义的过程中需要避免一些问题,比如造词是否考虑大众的接受度和理解能力,习惯性的用经验定义也不是说不好,但是从经验而来的统一语言可能不一定特别合适。

六、统一语言与落地

6.1 需求转译

当我们不用DDD的思想或者思维方式去看需求的时候我们只能看到很少的统一语言或者说简单可以称为统一语言的缩略语,术语等等,比较零散。那么如果没有建模直接到数据模型的话,对于整个领域内的统一语言在代码上会少很多。

6.2 复杂转译

其实很多时候我们作为开发或者测试是没有从领域的角度去出发的,所以当需求里面很多操作或者场景无法统一无法准确表达的时候就会出现一种情况就是混合表达,类似于自己主观理解与输出的那样,变量名命名方法命名的问题就跟这个有很大关系,

6.3 项目迭代

互联网业务和系统本身的迭代速度是很快的,对于大多数互联网公司而言,一个系统的维护会被多个部门多个团队负责,如果一开始是DDD的后面不是那么统一语言可以发挥一定的作用,或者作为项目的基石存在。到后续不再使用DDD去迭代项目了,那么统一语言的衰落会变得非常快,到最后与项目里表现的代码文档会差距很大。

七、总结

本篇简单聊一下从没有用统一语言到准备用,然后却没用好的过程。这些过程涉及到方方面面,不仅是自己的问题,也跟团队,跟客观环境有点关系。当然知己知彼才能百战不殆,后面两篇将简单介绍一下尽量让统一语言变得统一的一些方法和工具,以及可能的思路,敬请期待。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值