简介: 本文介绍了业务模型设计和实现保持一致的重要性以及实际落地可能遇到的问题,以及BizWorks如何设计并提供一种双向联动能力, 通过BizWorks Toolkit(IDE 插件) 来解决和优化双向联动过程中的一系列问题。

业务模型设计和沉淀是企业数字化转型过程中非常重要的一个环节,  日趋复杂的业务场景和协作模式给建模的有效性以及模型作为业务资产如何持续发挥价值带来了新的挑战:

  • 设计完成的业务模型是否被合理实现了?
  • 经过数月、半年、1年迭代后,模型设计还能否对业务系统的演进起到有效价值?
  • 当企业供应商更换时, 业务系统的关键模型设计是否被有效保留了? 如何最大程度降低切换成本?

BizWorks双向联动机制

针对这一系列问题,BizWorks建模平台设计并提供了一种平台模型和代码的双向联动机制, 其主要原理如下所示:

  1. 模型到代码 - 设计阶段
  • 设计阶段, 在建模平台完成模型设计, 实现模型的可视化和在线化
  • 通过平台预置能力生成脚手架,模型对应的代码框架也同时生成
  1. 代码到模型 - 开发阶段

进入开发阶段后,研发人员更聚焦在代码侧,可以借助BizWorks Toolkit(IDE 插件) 快速完成

  • 本地模型批量标注
  • 本地模型批量扫描上报
  1. 联动效率和有效性

如何将平台(重设计),代码IDE(重开发)这两个不同定位的场景有效串联是双向联动需重点解决的问题。

BizWorks Toolkit(IDE 插件)通过提供了一系列配套能力使联动效率得到很大提升,也使得双向联动这一流程能有效落地:

  • 平台模型实时同步
  • 模型&代码实时校验
  • 模型&代码一致性规约扫描
  • 错误修复辅助(快速定位错误代码、QuickFix)
  • 针对模型变更的代码增量生成
  • 代码侧模型批量扫描上报

此外,结合模型灵活的多版本机制,双向联动可有效支持如下场景:

BizWorks Toolkit能力介绍

BizWorks Toolkit(IDE 插件)对双向联动的有效性起到了很大的作用,下面我们来看下具体是如何工作的。

1. BizWorks Toolkit安装和配置

首先通过插件市场完成BizWorks Toolkit安装

完成登录认证信息(具体步骤请参见BizWorks Toolkit在线帮助)

2. 完成应用和业务域版本的关联和相关配置

3. 查看和同步平台模型数据

首先打开BizWorks视图窗口

可以通过以下两种方式触发同步建模平台模型数据操作:

通过BizWorks菜单

或通过平台模型标签的同步下载入口

同步元数据成功后,界面会出现下图所示的提示

同步建模平台模型后,插件可以实时对比模型与代码差异,并提供修复建议。

4. 模型增量生成到本地/删除平台模型

右键单击目标模型,选择同步模型到本地

选择目标路径

模型增量生成代码

此外当有必要时,我们也可以在代码侧删除平台非必要模型

5. 代码标记为模型

我们可以通过多种方式快速完成将代码标记为模型:

  • 根据目录批量标注

  • 单文件标注

类导航树右键菜单:

或当前类编辑区域右键菜单:

6. 新建模型代码模板

我们可以根据需要选择具体模型类型,快速创建其对应的代码模板,新建的模型代码可通过后续的模型上报更新到建模平台。

7. 本地代码与平台模型的一致性约束

BizWorks Toolkit(IDE 插件)会实时校验本地代码和平台模型的一致性,当代码内容与平台模型存在不一致时,会标注下划线突出显示,在鼠标悬停或使用快捷键(Ctrl+F1)时界面会出现相应的错误提示。

或通过一致性规约扫描,会对平台模型和本地代码进行批量扫描并显示不一致问题

如果安装BizWorks插件的同时也安装了阿里规约扫描(Alibaba Java Coding Guidelines)插件,触发BizWorks规约扫描时会同时触发阿里规约扫描。

8. 快速修复代码和模型不一致问题

对于一致性校验不符合的内容,BizWorks Toolkit(IDE插件)提供了在代码侧或平台侧快速修复的方式

9. 批量扫描上报模型

可以通过"BizWorks菜单 - 扫描项目代码为模型"或 "BizWorks - 本地模型"标签页的扫描入口进行本地模型批量扫描

扫描后可查看本地模型

以及本地模型和平台模型的差异

并选择批量上报或选择单个模型进行上报

关于BizWorks Toolkit(IDE插件) 更多内容,请参见BizWorks Toolkit在线帮助

总结

本文介绍了业务模型设计和实现保持一致的重要性以及实际落地可能遇到的问题,以及BizWorks如何设计并提供一种双向联动能力, 通过BizWorks Toolkit(IDE 插件) 来解决和优化双向联动过程中的一系列问题。

BizWorks Toolkit(IDE 插件)也还在持续演进和优化,希望通过更高效、更易用的机制帮助大家得心应手地完成模型设计和实现的一致性联动并持续演进,非常欢迎大家的试用并提供宝贵的优化建议。

如果大家对BizWorks(企业级云原生应用数字工作台)相关产品有兴趣,也欢迎访问BizWorks主页做详细了解:https://www.aliyun.com/product/applicationservice/bizworks

本文为阿里云原创内容,未经允许不得转载。

模型代码联动难? BizWorks来助力的更多相关文章

  1. java eclipse中的代码联动提示功能

    eclipse中的代码联动提示设置:window--->preferences--->java--->editor----> content assist的auto activ ...

  2. 朱晔的互联网架构实践心得S2E1:业务代码究竟难不难写?

    注意,这是我的架构实践心得的第二季的系列文章,第一季有10篇你也可以回顾. 见https://www.cnblogs.com/lovecindywang/category/1296779.html 最 ...

  3. 多路复用I/O模型poll() 模型 代码实现

    多路复用I/O模型poll() 模型 代码实现 poll()机制和select()机制是相似的,都是对多个描述符进行轮询的方式. 不同的是poll()没有描述符数目的限制. 是通过struct pol ...

  4. Windows Socket五种I/O模型——代码全攻略(转)

    Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模式.可以通过多线程技术进行处理. 非阻塞模式:执行I/O操 ...

  5. Matlab 图论最短路问题模型代码

    最短路问题的基本内容 最短路问题研究的是,在一个点与点之间连接形成的网络图中,对应路径赋予一定的权重(可以理解为两点之间的距离),计算任意两点之间如何和走,路径最短的问题.在这里的距离可以理解成各种两 ...

  6. [原创] Matlab 指派问题模型代码

    指派问题的基本内容 一般来说指派问题解决的是如何将任务分配到人,使得任务完成的效益最大化(成本型效益则求最小值,利润型效益则求最大值).上述问题一个 0 - 1 整数规划问题. 问题围绕着任务和人展开 ...

  7. Matlab 整数线性规划问题模型代码

    整数线性规划问题的基本内容 整数线性规划解决的是自变量在一定的线性约束条件下,使得线性目标函数求得最大值或者最小值的问题.其中自变量只能取整数.特别地,当自变量只能取0或者1时,称之为 0-1 整数规 ...

  8. Matlab 非线性规划问题模型代码

    非线性规划问题的基本内容 非线性规划解决的是自变量在一定的非线性约束或线性约束组合条件下,使得非线性目标函数求得最大值或者最小值的问题. 当目标函数为最小值时,上述问题可以写成如下形式: \[ \mi ...

  9. Matlab 线性规划问题模型代码

    线性规划问题的基本内容 线性规划解决的是自变量在一定的线性约束条件下,使得线性目标函数求得最大值或者最小值的问题. \[ \min z=\sum_{j=1}^{n} f_{j} x_{j} \] \[ ...

  10. 多图上传控制器及模型代码(2)thinkphp5+layui实现多图上传保存到数据库,可以实现图片自由排序,自由删除。

    公共css代码 <style> .layui-upload-img { width: 90px; height: 90px; margin: 0; } .pic-more { width: ...

随机推荐

  1. day11-2-内置Tomcat的配置和切换

    SpringBoot内置Tomcat的配置和切换 1.基本介绍 SpringBoot支持的webServer:Tomcat,Jetty,Undertow 因为在spring-boot-starter- ...

  2. 编译OpenWRT-for-MT7620A(带8021x验证)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  3. 03.Android之View原理问题

    目录介绍 3.0.0.1 View的绘制需要经过哪些过程?有哪些常用回调方法?View的绘制流程的详细流程是怎样的? 3.0.0.2 View绘制流程,当一个TextView的实例调用setText( ...

  4. Linux安装Oracle12C及一些参考

    目录 安装 系统配置 安装前装备 安装依赖包 创建用户和组 修改内核参数 修改系统资源限制 创建安装目录及设置权限 设置oracle环境变量 安装Oracle 一些参考 compat-libstdc+ ...

  5. 【环境配置】vscode配置C C++开发和调试环境

    按照本教程配置好之后,不再需要写任何tasks.json和launch.json文件,减轻记忆负担,即使是调试程序,也不用再写这些文件了,跟着做就能得到一个很好的集成开发环境 目录 msys2的安装与 ...

  6. MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析

    论文提出应对极低计算量场景的轻量级网络MicroNet,包含两个核心思路Micro-Factorized convolution和Dynamic Shift-Max,Micro-Factorized ...

  7. stm32F103 移植Free RTOS

    stm32F103 移植Free RTOS 1. 下载FreeRTOS 源码 [官网下载] (http://www.freertos.org) [代码托管网站下载] (https://sourcefo ...

  8. 浅谈ET框架--ECS设计核心(一)

    ET框架的ECS设计核心可以总结为一句话,那就是: 继承转组件,多态转分发 OOP设计里的继承更换为组件Component模式,多态转成分发模式. 框架代码里头的案例: 数值组件挂载Entity上. ...

  9. JavaScript语法-字符串模板

    目录 JavaScript 模板字符串 代码 问题 初学者容易出现的错误 调用函数的情况 JavaScript 模板字符串 代码 以下是index.js的部分代码: onShareAppMessage ...

  10. Jetty的bytebufferpool模块

    bytebufferpool模块用于配置Jetty的ByteBuffer对象的对象池. 通过对象池的方式来管理ByteBuffer对象的使用和生命周期,期望降低Jetty进程内存的使用,同时降低JVM ...