西门子Mendix低代码开发平台试用体验

今天试用了下Mendix低代码开发平台。

西门低代码平台

西门子低代码平台(Siemens Low Code Platform)提供所需的一切资源,助您大规模创建,集成,部署,管理和迭代开发现代业务应用程序。 掌握可视化应用开发技术,缩短上市时间、释放业务人员的能力,提高业务水平 IT 之间的协作、 打造用户喜爱的移动应用,实现离线优先的丰富交互。西门子低代码平台是面向所有人群的应用开发平台,可以帮助企业更好地推动业务发展。

在这个我先总结下简单实用后的总结如下:

Mendix平台整体初次使用感觉就类似多年前自己使用Visual Studio Donet IDE的感觉。整个平台是面向开发人员的,属于低代码开发平台类型。其中核心两个特点,其一是基于MDA模型驱动的思想来进行构建,其二是通过Mrico FLow微流来实现的灵活业务,事件,微服务等的编排能力。

这个实际我前面谈低代码开发平台谈到的两大核心能力完全类似。首先整个架构应该是基于模型驱动的,有了模型才具备后续的扩展性能力。其次对于软件开发里面的复杂业务规则和逻辑等编写将其抽象为可视化的微服务编排能力,通过服务编排来实现快速的组合。

但是整个平台试用下个人仍然不推荐,主要原因包括2点。

其一是国外的这类软件实际对国内应用APP的一些使用场景和习惯了解的并不多,导致开发出来的功能和当前我们主流的应用功能,界面布局呈现等都存在较大的差异。

其二是这个平台已经接近于面向开发者的各类RAD IDE工具,类似.net Studio,更老的Dephi等完全具备这种低代码平台的能力,而且代码完全可见,更加容易使用。采用这类代代码平台对于开发人员来说完全没有必要。

快速开发,低代码和无代码的边界问题

在当前低代码开发热度不减的情况下,我希望将其分为三类。

其一类就是完全面向开发人员的快速开发平台,这里平台重点是对常用的共性技术能力,组件进行封装,以方便开发人员快速开发,而且开发完成的内容完全对开发人员可见,最终运行也可以脱离低代码平台环境。典型的类似JEEcg这类开源平台。

其二就是类似Mendix,包括国内的普元信息的EOS等,也是面向开发人员,能够支撑各种复杂业务场景,但是最终场景的支撑你会发现仍然需要代码化或编写脚本才能够完成,而且这类平台本身相对封闭。对开发人员也有技能要求。

其三就是类似明道,简道,宜搭这种偏零代码的开发平台,不需要有太多的开发经验,大量工作都可以通过配置化的方式完成。

而实际真正需要的低代码开发平台不是类似Mendix将复杂业务规则等全部都去实现,而是形成一种符合模型驱动+微服务编排为核心思想的,基本功能零代码+复杂规则自己写代码并暴露为API接口的一种组合模式。

简单的功能开发

在这里我们以一个客户基本信息维护的功能对Mendix进行了试用。整个过程实际上差不多5分钟就能够发布完成该功能。具体步骤为:

1.创建一个空白项目

2.创建一个领域模型,实际核心即数据库建模

3.创建一个页面,将页面管理到数据对象

4.选择页面自动生成和排版

在创建完一个空白项目后,左边会出现Project Explorer,从左边也可以看到核心的对象包括了领域对象模型,Page页面,MicroFLow微流

低代码平台

在这里创建一个对象模型,设计对象结构,和数据库设计完全类似,也可以看到当前主流的低代码开发工具中,对于对象建模和数据库设计来说一般都需要完全开放出来。

数据库设计本身支持单表设计,也支持多表设计和表关系设计。

创建完成地表之间的关联依赖关系会自动应用到后续的页面功能创建中。

mendix

在对象模型创建完成后,可以开始创建Page页面,注意页面这块包括了列表页,Form页,主从页面,向导页面等各种页面模板,可快速的基于页面模板来创建页面。

比如在这里选择Grid页面模板,进入到页面设计后。

双击页面会出现一个对话框,在这里需要将页面和数据对象进行绑定操作。

mendix对话框

在绑定完成后选择自动化生成页面元素,这个时候会自动进行页面元素的生成,一个简单的表单CRUD功能就全部完成。

这个时候可以点击运行按钮进行运行,具体效果如下:

mendix低代码平台

核心能力Mirco Flow的编排能力

对于Mendix前面我已经谈到,两个核心能力。一个是领域对象建模和模型驱动,一个是MicroFLow的微流可视化设计和编排。

可视化设计

在低代码设计和开发里面可以看到,如果仅仅是一个界面控件或按钮出现一个简单事件,比如需要跳转界面,弹出消息对话框,发送邮件等,这些相对来说都容易实现。而真正的业务场景实现往往都是点击一个按钮触发事件后,实现这个事件的方法里面往往需要调用多个操作步骤,里面还涉及到一些判断逻辑处理。

要实现这个能力必须具备一定的可视化编排设计。

在前面我谈低代码平台的文章里面也指出过,微服务编排是低代码平台里面的一个关键能力,也是在中台和服务化架构里面,实现前端应用快速开发和底层服务共享能力之间协同的一个关键能力。

可视化模型驱动

在重新思考Mendix的这个功能的时候,你会发现实际包括了两个方面的能力,其一就是前面说的微服务编排能力,如上图可以看到Avtive活动节点可以调用外部的Rest API接口。其二是常见的页面流转,事件处理逻辑编排,这个有点类似于Axure UI设计工具里面的前端页面事件编排。而Mendix刚好是组合并融合了这两方面的能力。

低代码和中台什么关系?

低代码和中台

低代码和中台可以说完全没有关系。但是在一个已经存在大量遗留系统的企业中,如何进行传统IT架构改造,如何进行数字化转型,这两者之间就出现了关系。

其一就是我们常说的企业遗留IT最好是进行适配和抽象,形成一个中台能力服务层,也就是大量可以复用的业务和技术服务能力都构建在业务中台和技术中台,可以开放给上层应用使用,方便上层应用的快速开发。

那么上层应用如何开发?

当前你也可以采用传统的Java开发模式,采用相应的微服务架构和分层框架,基于常用的Eclipse等开发环境进行Java应用的开发。而我们真正希望的则是在构建了完整的中台能力服务层后,对于前端应用的开发能够完全低代码或零代码化。

因此要做到这点,新的领域对象建模反而不是最重要的。

重要的事情变化为两个,其一就是前端的Page页面和可视化表单设计能力,其二就是前端表单和后端服务的绑定能力,这个绑定不是简单的1对1绑定,还存在API服务接口的编排能力,而这个能力是能否基于中台已有共享服务快速开发前端应用的关键。

而Mendix的解决思路即使通过Micro FLow来解决。

个人理解,Micro FLow是Mendix这个低代码产品里面最大的一个亮点,完全可以在当前低代码平台开发中参考和借鉴。

推荐阅读:Mendix 与 OutSystems:企业低代码对比