云巧工坊蓝图绘制简介

简介: 根据领域驱动设计引子,引出事件风暴建模方法,划分限界上下文等战略设计方法。介绍云巧工坊提供的蓝图设计工具,帮助开发者将业务模型落地为代码架构。

PBC和业务建模

问题是什么

在软件行业,我们都知道一个经典的故事:用户想要一匹跑的更快的马,福特发明了汽车。

之前看到过一个段子,面对这个需求的时候,二逼产品经理已经开始喂马和给马制定健身计划了。那么面对客户直接的需求福特是怎么挖掘和定义问题的呢,我们可以想象下面的对话:

产品经理:你为什么需要一匹更快的马呢?

用户:因为我想跑的更快

产品经理:为什么想跑的更快

用户:这样我就可以更快的到达目的地了

所以,通过一定的分析和挖掘,用户想要一匹跑的更快的马的真实诉求是“更快,更短时间的到达目的地”,于是福特发明了汽车。

                       

从PBC看组件的业务价值

Gartner在2021年10月19日,正式发布了2022年重要战略趋势。其中包括了“可组装式应用”这一战略。关于可组装式应用,Gartner提出了“PBC”(Packaged Business Capability)这个概念作为组装式应用的核心。

与微服务架构不同的是,前者交付的依然是封装应用,而基于PBC的组装式应用交付的是一个数字化的平台。在这个平台中,PBC更像一个个原子,而组装式应用是把这些原子重新组合起来的一个个分子。


对于业务问题的定义和理解直接决定了我们在解决用户问题时所采用方案。

通过领域建模PBC式可组装应用,可以把我们对业务的理解、和技术架构的实施结合起来。

领域驱动设计

领域驱动设计(DDD:Domain Driven Design)是一种处理高度复杂域的设计思想,它试图分离技术实现的复杂性(Technical Concern),围绕业务概念构建领域模型,来控制业务复杂性,以解决软件难以理解,难以演化等问题。领域驱动设计思想较其他建模方法更系统全面,其涵盖面包括战略上的模块拆分和战术上的应用内部架构。

领域驱动设计为达成业务建模目标提供了基础。

DDD设计思想

DDD核心是通过划分业务领域的边界,将复杂的问题,拆分为不同的领域,分而治之。

战略设计和战术设计

DDD提供了两种策略,战略设计和战术设计。

战略设计:通过划分边界(限界上下文)的过程,以及探讨不同边界的性质,实现策略的过程

战术设计:找出具体的业务概念,并且在特定架构约束下完成技术实现的过程

通过战略设计和战术设计,我们逐步分析,分解,获得解决方案中的领域模型,限界上下文及其映射关系。

事件风暴和领域建模

领域建模是比较常见的定义问题的方法,我们以“事件风暴”工作坊来梳理:旅行中“购买机票”的模型,感受一下面对业务场景,领域建模师如何帮助我们梳理问题的。

1)首先邀请领域专家参与进来,通过用户旅程图呈现整体业务流程。我们可以看到核心的步骤包括三部分:配置航班,预定,旅行,在每一个步骤中又有很多子步骤。将这些步骤列出来,并且标记处每一步对应的状态。

2)面对流程中我们会发现有很多的名词概念,和动词操作。我们把名词的部分找出来,就是“业务概念”,比如“航班”,“预定”,“机票”,“旅客”;同时,我们把对应的动词和产生动作的操作者也找出来,这些称为“命令”,通过命令对业务概念的操作,最终使得业务概念的状态变化,从而完成我们的业务。产生的结果我们通过状态描述,如:航班已创建。

命令的方式有多种:用户操作,系统行为,第三方系统行为,定时任务等等。感兴趣的朋友可以通过了解更多事件风暴的内容。

3)当我们梳理好一个个业务概念之后,接下来,把一个核心流程里相关的业务概念划分为一个限界上下文。不同限界上下文通过上下文映射相互调用。 划分上下文没有标准答案,根据具体的业务场景和业务方向,可以是一个上下文,也可以是多个。并且,限界上下文的边界在业务的不同时期可能会发生变化。这些都可以帮助我们更好的理解业务。

4)接下来,在限界上下文中,不同的业务概念会存在对应关系,如上图中一个航班对应多个旅客,而一个航班对应一个超卖策略。

面对这样的业务模型和对应关系。云巧工坊提供了蓝图绘制工具,可以在线进行模型设计,将业务模型准确的设计为软件模型,并且自动生成可供开发人员维护的代码。

云巧工坊蓝图绘制

蓝图绘制

云巧工坊模型设计器:可以根据梳理好的业务模型,设计每个业务概念中的属性,不同的业务概念设计整合为一个限界上下文(聚合)。

通过业务概念之间的对应关系,模型设计器可以准确表达业务。同时,设计器会自动为当前模型生成代码,方便研发人员进行开发工作。


最后

两句话分享给大家,路漫漫其修远。

“It’s developers understanding, not your knowledge that becomes software!”

软件产品的效果和功能是基于开发人员的理解,而不是你的知识

Building a software is a learning process, working code is a side effect

软件开发是一个学习的过程,而可工作的软件只是众多学习成果中的一个

Alberto Brandolini

相关文章
|
5月前
|
数据可视化 前端开发 搜索推荐
数字孪生可视化开发技术(ThingJS)学习笔记
数字孪生可视化开发技术(ThingJS)学习笔记
395 0
|
2月前
|
安全 JavaScript 数据可视化
Axure高端交互元件库:助力产品与设计
为了在这个竞争激烈的市场中脱颖而出,设计师和产品开发团队需要依赖强大的工具来创造引人注目且功能丰富的交互界面。下面介绍一款Axure精心制作的"Web高端交互元件库",作为一款高端交互元件库已被很多设计者使用,它成为了产品与设计团队不可或缺的得力助手。
|
数据可视化 搜索推荐
【数据可视化】预制菜行业分析(一)——国内发展情况
近年来,预制菜开始从大型连锁餐饮企业的中央厨房渗透到外卖餐饮平台,并逐渐从 B 端走向 C 端。消费者购买后只需要简单加工即可食用,省去了食材采购、处理步骤,具有便捷、高效、口味保持度高的特点。
|
数据可视化 物联网 程序员
使用webgl(three.js)搭建一个3D智慧园区、3D建筑,3D消防模拟,web版3D,bim管理系统——第四课(炫酷版一)
3d建筑,3d消防,消防演习模拟,3d库房,3d档案室,3d密集架,webGL,threejs,3d机房,bim管理系统
5649 0
|
开发框架 数据可视化 Java
使用云巧工坊编写业务流程并可视化
软件产品都面临业务需求、流程快速变化的现状,往往之前设计绘制的业务流程在几个月之后就会失效的问题,如果按照一定语法开发的代码可以实时正确反应业务流程就解决了业务流程保鲜的问题。yunqiao-boot-starter-flow 就是解决这一问题的开发框架。
305 0
|
前端开发
Axure实战11:创建一个BusinessCanvas商业模型画布网站
Axure实战11:创建一个BusinessCanvas商业模型画布网站
816 0
Axure实战11:创建一个BusinessCanvas商业模型画布网站
|
10月前
|
数据采集 JSON 前端开发
一零四、大数据可视化技术与应用实训(展示大屏幕)
一零四、大数据可视化技术与应用实训(展示大屏幕)
一零四、大数据可视化技术与应用实训(展示大屏幕)
|
移动开发 数据可视化 前端开发
基于自然流布局的可视化拖拽搭建平台设计方案
LowCode 是高效、高性能的拖拽式低代码开发平台. 也是笔者最近一直在研究的方向, 对于可视化搭建平台的实现方案笔者之前写过很多文章, 这里带大家探索一个新方向——基于自然流布局的可视化搭建平台.
904 0
|
数据采集 运维 监控
智慧园区可视化设计思路
智慧园区可视化设计思路
智慧园区可视化设计思路
|
云安全 人工智能 移动开发
AntV 图可视分析解决方案,来啦!
相信大多数小伙伴们都是带着疑问进来的:什么是 AntV ?什么是图可视分析?什么是解决方案?解决方案都有啥?为什么要写它?哈哈哈,小伙伴们稍安勿躁,此篇文章就是来回答这些问题的~
AntV 图可视分析解决方案,来啦!
下一篇
无影云桌面