【领域驱动设计】模式--通用语言(Ubiquitous language)

一.前言

有道无术术可求,有术无道止于术。方法论的形成都是为了让我们能够更高效,系统的解决问题,而不至于遇到问题不知所措。

二.通用语言的必要性

相信大家在实际的软件开发流程过程中,经常会遇到参照 Prd原型 编码出的系统与实际业务角色想要的有差距,而这个差距来源哪里?来自:业务方-产品-技术-测试 整个产品链上的人没有形成统一认知。为了避免且解决这个问题,领域驱动设计中延申出一个角色 -- 领域专家,这个角色实际可能是架构师,可能是高级开发,可能是项目经理,但总归要有人来做这个事情。

三.领域专家需要掌握的要素

3.1 模型和实现的绑定

3.2 建立一种基于模型的语言

3.3 开发一个蕴含丰富知识的模型

3.4 提炼模型

3.5 头脑风暴和实验

具备了这些能力要素能够让领域专家 有效的建模形成统一有价值的模型

四.总结

最终的目的是把 领域模型 作为软件项目沟通和交流的核心。如果语言支离破碎,项目必将遭遇严重问题。

通用语言的词汇包括类和主要操作的名称,术语中则包含明确的规则,还有一些高级组织原则。词和短语的意义反映了模型的定义、概念的定义。

开发人员应该使用基于模型的语言来描述系统中的工件、任务和功能。这个模型应该为开发人员和领域专家提供一种相互交流的语言,而且可以使用这种语言来讨论需求、开发计划和特性。语言使用的越普遍,理解进行得越顺畅。

解决交谈中对定义得模糊不清。需要形成对模型定义的一致理解。

领域模型是解决实际业务的方法论。

五.参考

《领域驱动设计--软件核心复杂性应对之道》

相关推荐
知识即是力量ol4 分钟前
初识 Kafka(一):分布式流平台的定义、核心优势与架构全景
java·分布式·kafka·消息队列
爱吃生蚝的于勒8 分钟前
【Linux】线程概念(一)
java·linux·运维·服务器·开发语言·数据结构·vim
kong79069289 分钟前
Nginx性能优化
java·nginx·性能优化
Pluchon10 分钟前
硅基计划4.0 算法 简单模拟实现位图&布隆过滤器
java·大数据·开发语言·数据结构·算法·哈希算法
我命由我1234511 分钟前
Java 泛型 - Java 泛型通配符(上界通配符、下界通配符、无界通配符、PECS 原则)
java·开发语言·后端·java-ee·intellij-idea·idea·intellij idea
Seven9711 分钟前
AQS深度探索:以ReentrantLock看Java并发编程的高效实现
java
4311媒体网19 分钟前
C语言操作符全解析 C语言操作符详解
java·c语言·jvm
淡忘_cx20 分钟前
使用Jenkins自动化部署spring-java项目+宝塔重启项目命令(2.528.2版本)
java·自动化·jenkins
毕设源码-钟学长25 分钟前
【开题答辩全过程】以 基于SSM的孤儿救助信息管理系统设计与实现为例,包含答辩的问题和答案
java
独自破碎E25 分钟前
【曼哈顿距离】BISHI25 最大 FST 距离
java·开发语言