一、背景

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

二、统一语言与映射

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去迭代项目了,那么统一语言的衰落会变得非常快,到最后与项目里表现的代码文档会差距很大。

七、总结

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

统一语言为什么不能统一(二)相关推荐

  1. 统一语言为什么不能统一(一)

    一.背景 学了DDD也大半年了,看事物也总喜欢从更多的维度去看,因此对于需求而言,总可以归为从问题空间到解空间的映射.不过有时候这种从领域的角度或者领域驱动设计的方式去跟人沟通的时候发现是挺痛苦的,毕 ...

  2. 不同设备如何统一语言编程平台高效开发?本文为你揭秘

    原文:不同设备如何统一语言编程平台高效开发?本文为你揭秘,点击链接查看更多技术内容. 随着数字化时代的发展,手机.平板.PC.电视.智能手表.车机等智能设备的普及率越来越高,但不同设备往往搭载了不同的 ...

  3. 易语言可以写鸿蒙系统,华为王成录:鸿蒙 OS 系统是不同设备的统一语言

    IT 之家 4 月 7 日消息 华为消费者业务软件部总裁.AI 与智慧全场景业务部部长王成录受邀在近日举办的 " 压力下前行 "TEDxHouHai 大会上发表了 " 联 ...

  4. 欧洲统一语言参考标准C1,浅述欧洲统一语言参考标准.doc

    浅述欧洲统一语言参考标准 浅述欧洲统一语言参考标准 摘 要:随着2001年欧洲统一语言参考标准的问世,它已经成为了整个欧洲在外语教学上的指导性文件,并逐步被世界其他国家引入到自己国家的外语教学中.中国 ...

  5. c语言压缩文本文件北京理工大学,北京理工大学C语言程序设计第十二章文件.ppt...

    北京理工大学C语言程序设计第十二章文件 2000年1月25日 北京理工大学 / 第十二章 文件 第一节 文件概述 第二节 文件的处理 第三节 文件的顺序读写操作 第四节 文件的随机读写操作 第五节 文 ...

  6. C语言内存管理内幕(二)----半自动内存管理策略

    2019独角兽企业重金招聘Python工程师标准>>> C语言内存管理内幕(二)----半自动内存管理策略 转载于:https://my.oschina.net/hengcai001 ...

  7. C++语言学习(十二)——C++语言常见函数调用约定

    C++语言学习(十二)--C++语言常见函数调用约定 一.C++语言函数调用约定简介 C /C++开发中,程序编译没有问题,但链接的时候报告函数不存在,或程序编译和链接都没有错误,但只要调用库中的函数 ...

  8. R语言ggplot2可视化绘制二维的密度图:在R中建立二维散点数据的连续密度热图、2D密度估计、MASS包中的kde2d函数实现2D密度估计、geom_density2d函数可视化二维密度图

    R语言ggplot2可视化绘制二维的密度图:在R中建立二维散点数据的连续密度热图.2D密度估计.MASS包中的kde2d函数实现2D密度估计.geom_density2d函数可视化二维密度图 目录

  9. C语言文件操作解析(二)【转载】

    http://www.cnblogs.com/dolphin0520/archive/2011/10/05/2199598.html C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件, ...

最新文章

  1. ​DL_WITH_PY系统学习(第3章)
  2. 艾伟_转载:把事件当作对象进行传递
  3. IDEA工具Terminal使用git log中文乱码的解决方法
  4. 【转】Java学习---Java Web基础面试题整理
  5. 【python】数据结构与算法之选择排序
  6. python输出汉字怎么注释中文_Python使用中文注释和输出中文(原创)
  7. 当安全遇到大数据 “永恒之蓝”也将无所遁形!
  8. is 和 == 的区别
  9. sql查询分析器 只读_DRDS 只读实例来解决复杂 SQL 查询
  10. 蓝牙耳机测试软件apk_AndPods蓝牙耳机管理器.apkv1.5.2 免费版 Android
  11. (CODE)计算机视觉引论及数字成像系统
  12. 解决从PDF复制文本到word的时候排版问题小技巧
  13. 支持android 9的框架,【测评】安卓9 xposed框架 riru edxposed与太极·magisk对比
  14. 【面试招聘】我的秋招记录——(自然语言处理-面经+感悟)
  15. Xmind 8 下载以及破解
  16. 迪斯尼计算机动画,迪斯尼经典动画的十大运动规律
  17. Eclipse同屏显示两个代码编辑窗口
  18. java后台将数据导出到Excel表格
  19. Resional Rose使用说明
  20. Win10新增的应用及功能说明

热门文章

  1. Angular动态表单
  2. 后门攻击阅读笔记,Graph Backdoor
  3. 链脉王玉老师:如何用智能名片提高会议营销效果
  4. chmod 数字解释
  5. 传播智课C#-学习笔记(2)
  6. 基于Echarts实现可视化数据大屏智能分析系统
  7. 全民一起玩python求分享_全民一起玩Python(基础篇+提高篇)
  8. web前端开发推荐阅读书籍
  9. 2010全球IT企业市值TOP 10
  10. 关于Mask-Rcnn中标注工具VIA(VGG Image Annotator)使用的详解