[答疑]通用语言(Ubiquitous Language)是伪创新吗?

2022-03-01 14:11:51 浏览数 (1)

(LEO) 2022-1-6 16:55

我在学习您的ppt,看到这一页提到通用语言是伪创新,我对您对事件风暴的评价十分认可,但我觉得通用语言还是非常有价值的。

UMLChina潘加宇

这里存在误解,伪创新的问题不是它本身没有价值,而是它的价值被别有用心地夸大,阻碍了真正的创新。

如果人们得知一个东西曾经存在过,那么当这个东西再次被拿出来宣传时,人们会对宣传保持较多的理性,“这东西如果真的这么厉害,那之前怎么……”,宣传的人也会收敛,不至于那么夸张。

伪创新会选择换个名字,称自己是“全新的”、“革命性的”,给人一种从未有过的、从天而降的感觉。因为是“全新的”,所以再怎么夸大宣传,人们也还是会给一个机会,毕竟是“新”的,没准人家真的有这么牛呢。

例如,说青霉素可以治愈肝癌,大众肯定不信,要是真的可以治愈肝癌那么多年不早就验证了嘛;如果把青霉素改个名字叫“K9527-α”,说可以治愈肝癌,可能就会有患者买了试试。

不是说青霉素没有价值,杀灭细菌总是可以的。就算是淀粉做的假药,还可以起到充饥的作用呢

危害在于,肝癌患者将宝贵的金钱和时间资源优先用在了“K9527-α”上,耽误了获得更好治疗方案的机会。


以下是本回答的展开:

类似通用语言(Ubiquitous Language)的概念早已有之,只不过当时可能叫术语表(Glossary)或数据字典(Data Dictionary),几十年前的开发规范中应该就存在了。相信大多数上世纪80-90年代进入软件业的开发人员都有印象,我97年参加工作,也算其中一个了。

早期很多书上也有叙述,列举我看过的几本上个世纪90年代的书:

(1)《软件复用:结构、过程和组织》,Ivar Jacobson等 著,本书在《软件方法》的推荐阅读书目中。英文原版出版于1997年。

“术语表”、“领域字典”,而且这些阐述是不是很眼熟?

(2)《实用面向对象软件工程教程》,Edward Yourdon 等著,本书在《软件方法》的推荐阅读书目中。英文原版出版于1996年。

(3)《UML对象、组件和框架——Catalysis方法》,Desmond Francis D’Souza 等著,本书在《软件方法》的推荐阅读书目中。英文原版出版于1998年。

(4)《程序员修炼之道——从小工到专家》,Andrew Hunt 等 著。英文原版出版于1999年。

以上列出的仅仅是我看过的书。我相信更早年代的资料也会有阐述的,感兴趣的同学可自行寻找。


另外,通用语言(Ubiquitous Language)这个称呼也是不合适的。“语言”这个词太大。语言要有自己的语法,汉语算,C算,UML也算,“通用语言”哪里有?

术语集或术语表的称呼更合适,例如“**项目术语表”,或者进一步按上下文分,“**上下文术语表”。


以下是本问题的更进一步扩展:

DDD圈子遍地创新,人人开宗立派,这不是正常的现象。

创新应该是非常辛苦的,能站在前人的肩膀上再进一小步,就已经非常不容易。

但是,要真的这样做实在太辛苦了,也不划算——还不如把一些东西改头换面来割韭菜呢!


初中数学里要学习全等三角形、相似三角形、SSS、SAS……,到了高中以后学了正弦定理、余弦定理等解三角形的知识……就不会再回去用初中的方法解题了。

但是,不是所有人都能学会高中的知识,比如说张三。

张三可能会这样解释:

我这个人能力比较弱,只能掌握全等三角形、相似三角形的方法。

这样的说法没有问题。

张三还可能会这样解释:

这个题目比较简单,用全等三角形、相似三角形的方法做足够了,而且这样更方便广大人民群众理解。

这样的说法也可以。不过,竞争对手不是傻子,市场中哪里有什么"简单题目"!能带来利润的题目都很复杂。

但是,张三如果这样说:

全等三角形、相似三角形的知识比高中三角函数的知识更深刻。

这就是自欺欺人了。

更要警惕的是,有一个李四,也许和张三一样没有掌握高中方法,也许掌握了高中方法但是为了忽悠张三们,偷偷把"全等三角形"改名为"叠合三角形",然后和张三宣传:

我发明了"叠合三角形"新方法,比高中的三角函数有用,三角函数过时了。

这就是伪创新。

uml

0 人点赞