一切皆是为了交流-DDD通用语言

通用语言是什么?

通用语言是一种在特定领域内的沟通方式,可以由文字、语言、手势、图像等一切与达到沟通目的的元素组成。

比如,在中国内,方言是闽南的小王与方言是粤语的小张进行交流,那么,普通话是他们交流的主要语言,那么普通话便是他们之间的通用语言。

再比如,美国人史密夫来到了北京的一家餐馆,史密夫不会说中文,餐馆工作人员也不会说英语,史密夫和点餐人员通过在菜单上指指点点,再加上一些点头、OK手势等动作,终于完成了点餐(虽然,也是有概率会点菜点错了),那么,在菜单是指点、点头、OK手势等一系列动作,便是他们之间的通用语言。

再比如,小明和小红是两个项目组的程序员,小明画了一张系统之间交互的时序图,两就着这张时序图进行了激烈的讨论,那么,这张时序图,就是他们之间的通用语言的一部分。注意的是,这里使用了“一部分”这个词,因为除了时序图之外,他们激烈讨论过程中所用到的语言、手势(甚至打架动作)、白板都是通用语言的一部分。

再比如,A先生是北方人,B先生是南方人,A先生说马玲薯好吃,B先生说土豆好吃,到底是马玲薯好吃还是土豆好吃?如果是通用语言,会在沟通之前使两人达成共识“马玲薯==土豆”。

在一个团队中,构建出属于自己的通用语言是非常有必要的,好的通用语言,能让团队具备极高的沟通效率!

通用语言,不是天然就存在的,而是在发展的过程中,不断地完善。

在践行DDD的时候,通用语言特别重要,因为它是连通管理、业务、技术的重要工具。

通用语言的目的是为了交流,凡是有利于交流的方式,都可以称之为通用语言。

以下是一段场景,可以让你感受到如何践行DDD。

业务:我们需要的图书管理,都是通过Excel、纸质文件、借阅卡来来管理的,我们的图书,目前是以批发的形式卖给书店。目前这种方式,已经是跟不上时代的发展了,我们急需一套数字化系统来支撑我们的图书业务!

技术:我们十分赞同!给详细说一下吗?

业务:我们想打造一个线上图书馆和线上图书商城!

这时候,技术人员默认地拿出笔来记住了两个字词“线上图书馆”、“线上图书商城”!

业务:我们准备今年将线上图书馆这一块内容完成数字化,明天再将线上图书商城完成数字化!

这时候,听到“数字化”这几个高大尚的词,一些年轻的IT人员似乎不明白啥是“数字化”,于是举手提问!

领导:数字化,大白话就是为业务提供软件支持!你们以后聊到这些的名词的时候,需要将这些名词记录起来形成一个清单,方便团队中的成员交流!

领导发话了,于是业务人员在说话的时候,在使用高大尚的词语时,都刻意带上了解释,在使用只有业务才能听懂的术语时,也会将术语用大白话解释一遍。

技术:线上图书馆、线上图书商城,这听起来很抽象,请详细展开说说!

业务:线上图书馆,是将真实的图书馆动作方式搬到线上化。包含图书库存管理、图书借阅、会员管理、线上阅读、公告,这些模块功能。

业务:线上图书商城,是打造一个类似京东的、但只卖图书的商城。

技术:……,能详细展开说吗?比如,对图书库存管理更细一步展开说。

业务:图书库存管理,其中包含了图书入库、出库,入库的时候,需要追溯到图书的供应商源头,出库的时候需要跟踪到图书的具体借阅人、购买人。……省略n万字。

讨论会议,双方都觉得很满意,并约定过几天再进行一轮交流,但这次交流以技术为主导。

过了几天,技术人员拿着一些图纸与业务人员在聊,省略一万字。

以下是技术人员制作的图纸的一部分

通用语言,符合自顶向下设计的原则。

把图书领域分成线上图书馆、线上图书商城两大子域。

再细分线上图书馆,分解成库存管理、图书借阅、会员管理、线上阅读、公告。

库存管理,又进一步细分。

如此细分下去,直接细分到满意的粒度为止。

通用语言,一定是要包含在领域之中,脱离了领域的通用语言是不存在的。比如,图书领域的会员管理,与电商领域的会员管理,不是相同的。图书领域的会员具体借阅书籍的权限,电商领域的会员权拥有商品的VIP价格购买优惠。

通用语言,该如何践行呢?

仁者见仁,智者见智。践行通用语言没有标准的行动规范,需要根据自身团队的实践情况,寻找最符合自身发展的通用语言践行方式。

1、能面对而沟通,就不要视频语音沟通。能视频语音沟通,就不要文字沟通

2、沟通之前,先使双方处于同一认知水平。比如,业务方需要向研发人员描述一个需求,那么,业务人员应该将这个需求的由来说清楚,让研发人员有个大概了解。

3、重要的事情说三遍。

4、任何安排下去之后,要亲自参与实际研发过程。亲自参与,并不是与要自己动手开发,时不时询问一下开发人员的进度、看看开发的初步效果、给开发一些鼓励支持,也是亲自参与的一种践行方式。

5、制定好团队的术语表

6、制定好各种标准规范,如编码规范、设计规划

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

item_get_app在竞品分析中的应用与效果评估

item_get_app作为淘宝开放平台的重要API接口,为商家在竞品分析中提供了强大的数据支持。在竞争激烈的电商市场中,竞品分析是商家不可或缺的一环,而item_get_app的应用则使得这一分析过程更加高效、精准。通过调用item_get_app接口&#xff0c…

数据分析案例-牛油果价格和销量数据可视化分析与预测(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

ctfshow web入门 php特性 web108--web115

web108 ereg函数相当于而preg_match()函数 ereg函数的漏洞:00截断。%00截断及遇到%00则默认为字符串的结束 strrev函数就是把字符串倒过来 就是说intval处理倒过来的传参c0x36d(877)?ca%00778 web109 异常处理类 通过异常处理类Excepti…

心理健康教育宣传活动

为进一步加强未成年人心理健康教育,宣传心理健康知识,促进未成年人心理健康发展,在重庆儿童救助基金会的支持下,喜洋洋社工在桥头镇开展心理健康教育宣传活动。 活动中社工通过表格《我是一个怎样的人》引导青少年观察自己&#…

【LAMMPS学习】八、基本知识的讨论(1.3)从一个输入脚本运行多个模拟

8. 基本知识的讨论 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和…

SAP ERP 公有云有哪些模块?

随着全球化竞争的加剧和企业管理需求的日益复杂化,越来越多的企业开始采用云端企业资源计划(ERP)系统来优化业务流程。SAP ERP 公有云(SAP S/4HANA Cloud, public edition)作为一款领先的云端ERP解决方案,为…

jest单元测试——项目实战

jest单元测试——项目实战 一、纯函数测试二、组件测试三、接口测试四、React Hook测试💥 其他的疑难杂症另:好用的方法 🌟 温故而知新:单元测试工具——JEST 包括:什么是单元测试、jest的基本配置、快照测试、mock函数…

算法刷题Day24 | 回溯算法基础理论、 77. 组合

目录 0 引言1 回溯算法基础理论1.1 回溯算法模板1.2 2 组合2.1 我的解题2.2 剪枝操作 🙋‍♂️ 作者:海码007📜 专栏:算法专栏💥 标题:算法刷题Day23 | 回溯算法基础理论、 77. 组合❣️ 寄语:书…

2024年第七届信息管理与管理科学国际会议(IMMS 2024)即将召开!

2024年第七届信息管理与管理科学国际会议(IMMS 2024)将于2024年8月23-25日在中国北京举行。数字化时代,我们面临着诸多挑战,如信息安全问题、数据治理难题、管理创新需求等。IMMS 2024的召开,旨在让全球信息管理与管理…

Centos7 安装GitLab

安装环境: 虚拟机:Centos7 最小安装 4核8G 下载GitLab 本次实验下载的是 gitlab-ce-14.1.0-ce.0.el7.x86_64.rpm 官网截图 清华源截图 安装包下载地址(官网;下载CE版本,EE是收费版本):https://packages.gitlab.com/gitlab/gitlab-ce国内镜像源下载地址(清华源):htt…

(源码+部署+讲解)基于Spring Boot和Vue的大学志愿者服务平台的设计与实现

摘要: 随着互联网技术的快速发展,大学校园内的志愿者活动日益增多,传统的志愿者管理方式已难以满足现代化、信息化的需求。因此,设计并实现一个基于Spring Boot和Vue的大学志愿者服务平台显得尤为重要。本文详细阐述了该平台的设计…

前端三剑客 —— CSS (第五节)

目录 内容回顾: 特殊样式 特殊样式 CSS变量 常见函数 倒影效果 页面布局 Table 布局(了解即可) DIVCSS布局 弹性布局 1)不使用弹性布局,而是使用DIVCSS 2)使用弹性布局实现导航菜单 内容回顾…

Windows深度学习环境----Cuda version 10.2 pytorch3d version 0.3.0

Requirements Python version 3.8.5Pytorch version: pytorch1.6.0 torchvision0.8.2 torchaudio0.7.0 cudatoolkit10.2.89pytorch3d version 0.3.0Cuda version 10.2 感觉readme文件里的不适配,跟pytorch官网不同 以前的 PyTorch 版本 |PyTorch的 # CUDA 10.2 c…

睿考网:小白怎么准备二级建造师考试?

小白想要准备二级建造师考试,可以遵循以下策略: 1.定位明确,设定目标,确保三门科目达到及格标准,避免学科偏重。 2.基础知识扎实,考试内容主要来自教材,因此,理解和记忆所学的基础…

Redis: 持久化

文章目录 一、RDB持久化1、概念2、生成、载入RDB文件3、执行时机(1) 执行save命令(2)执行bgsave命令(3)Redis停机时(4)触发RDB条件 4、bgsave原理5、小结 二、AOF持久化1、概念2、AO…

Linux初学(十四)LampLnmp

一、简介 LAMP和LNMP是两种常见的web服务器组合。具体如下: LAMP:LAMP代表的是Linux(操作系统) Apache(HTTP服务器) MySQL(数据库) PHP(编程语言)。这个组合被…

微信小程序 电影院售票选座票务系统5w7l6

uni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。 框架支持:springboot/Ssm/thinkphp/django/flask/express均支持 前端开发:vue.js 可选语言:pythonjavanode.jsphp均支持 运行软件…

OpenCV单通道图像按像素成倍比例放大(无高斯平滑处理)

OpenCV中的resize函数可以对图像做任意比例的放大(/缩小)处理,该处理过程会对图像做高斯模糊化以保证图像在进行放大(/缩小)后尽可能保留源图像所展现的具体内容(消除固定频率插值/采样带来的香农采样信息损失)&#x…

TCP客户端及服务器端开发实践

一、TCP客户端及服务器端开发实践 1、TCP网络应用程序开发分类 ① TCP客户端应用程序开发 ② TCP服务器端应用程序开发 客户端程序是指运行在用户设备上的程序,服务端程序是指运行在服务器设备上的程序,专门为客户端提供数据服务。那如何记忆呢&…