Mendix 创客访谈录|综合业务展示大屏应用开发

本期创客

图片 1.png
刘书智  西门子工业领域专家

我在西门子工厂自动化工程有限公司工作。一直从事SCADA产品的技术支持工作,已经过去17个年头了。赶上数字化发展的浪潮,不断学习各种IT技术,践行 IT与OT融合,希望借助自己的IT知识助力OT的发展。

创客访谈

MX:在使用Mendix低代码平台开发应用软件前,你和你的部门/团队主要应用什么开发工具?以前采用的开发工具有什么局限和问题?

刘书智:我所在的部门其实并不专职做开发类型的工作。但为了配合整个组织的数字化转型,会参与一些数字化相关的项目开发。涉及到的开发工具包括 VisualStudio 20xx系列,VS code,PyCharm等。主要参与一些高级语言程序的开发,例如C++、C#、Python及Java等。

MX:以前采用的开发工具有什么局限和问题?

刘书智:我过去参与的开发工作基本都是高级语言的开发。在编写Windows 可执行应用程序(*.exe)时还算方便。但是在编写Web 应用类程序时,就会比较吃力。因为要学习很多新的开发技术,HTML、JavaScript、CSS,还有各种前端框架、后端工具等等。掌握这么多的新技术需要花费大量的时间。另外对于这些新技术,虽然短期学会了,但是由于没有足够的经验,难免使开发过程磕磕绊绊,效率低下。

MX:你是如何认识Mendix低代码的?

刘书智:2021年部门组织了一次Mendix产品宣介会,我才知道这个产品。通过宣介会,了解到使用它来编写Web 应用真方便。尤其对于我这个 OT工程师来说。于是就利用业余时间,开始了Mendix学习之旅。

从2021年开始接触Mendix,到现在也就2年多。前面大部分时间都是在Mendix官网的Learning Path 上进行学习。真正开发实际的应用,也就不到1年的时间。

MX:改用Mendix低代码作为应用开发平台的主要原因有哪些?

刘书智:

  • 开发周期大大缩短。得益于Mendix的模型驱动技术,可以快速建立一个应用的数据结构。然后根据业务流程,使用其图形化的微流来搭建业务逻辑。最后支持各种形式的快速部署,很快就可以看到跑起来的应用雏形。然后就可以不断迭代。
  • 丰富的模块库。Mendix应用市场功能模块丰富多样,涵盖了大多数的业务应用需求。包括Email的收发模块,Excel 的导入导出模块,数据库的连接模块,REST通信模块,MyID单点登录模块等。通过这些官方模块,既降低了我们的开发难度,同时也提高了这些功能的稳定性及可靠性。
  • 强大的扩展能力。虽然Mendix提供了丰富的功能模块,还有用于页面呈现的图形组件。但是它仍然提供了强大的扩展能力。在功能方面,我们可以使用Java编写自己的扩展功能(JavaAction)。这对于具有Java代码基础的开发者非常友好。只要是Java能够实现的复杂功能,Mendix都可以扩展来实现。在页面呈现方面,我们可以使用Mendix创建的程序框架,通过TypeScript、React等技术来编写定制的图形显示组件。例如可以基于Echarts开源技术,编写出类似的Mendix显示组件,从而来丰富Mendix的页面展示功能。
  • 其它便捷的功能。在使用一段时间后,发现Mendix还有很多高效编程的功能。例如对于模型的更新,会自动更新所有使用到该模型的页面及微流。对于微流的更新,也会自动更新所有使用到该微流的页面及微流。根据领域模型,一键生成所有实体的预览及编辑画面,方便至极。丰富的用户权限管理功能,勾勾选选,就完成了一套复杂的权限管理需求。模块化的理念贯穿页面、微流、模块,几乎Mendix中所有的对象。这使多人开发、项目重组、功能复用等都极其方便。便捷的调试诊断功能。不管是电脑浏览器,还是手机浏览器,访问测试环境易如反掌。不管是本地运行,还是云上运行,随时可以开启debugger,快速定位故障点。支持部署在各种运行环境,简直不要太方便。还有很多,就不一一赘述了。

MX:截至目前,你和你的部门/团队利用Mendix低代码开发的应用有哪些?这些应用是自己部门使用还是支持其他业务部门使用?

刘书智:我们部门使用Mendix开发了业务大屏展示平台,还有培训管理系统平台。这些应用都是给我们部门自己使用的。

MX:在开发的这些应用中,使用了Mendix的哪些组件/模块?有什么感受/反馈?

刘书智:使用到了 Excel 导入导出模块,Email 收发模块,REST通信模块等。Mendix 自带的这些模块丰富了Mendix 的功能,明显缩短了我们实现相应功能需要花费的时间。

MX:在用Mendix开发的这些应用中,你最引以为傲的应用是哪个?能否具体介绍一下?

刘书智:我们团队开发的CSS业务展示大屏,是我印象比较深刻的一个应用。该应用的展示截图如下图所示。

图片 2.png

对于地图组件的开发过程,现在还记忆犹新。由于Mendix 自带的图形组件中没有地图组件,而我们的展示当中最重要的一个展示区域就是数据在地图上的展示。如果在常规的HTML开发中,实现中国地图的功能并不难,网上也可以找到很多类似的代码。但是在Mendix中实现这个功能,受到如下一些限制。首先得使用Mendix的组件开发框架。然后需要使用 TypeScript语言,React 框架,还有就是 Echarts相关技术。可是这些内容对于我这样一个OT工程师来说,都是陌生的技术,都需要重头学起。没办法,只能啃这块硬骨头了。功夫不负有心人,同时得益于Mendix自定义组件框架明晰的设计及稳定性,总算在最后按时完成了任务。

MX:这些应用为实际使用者/客户带来了哪些收益?

刘书智:作为数据展示大屏,显示效果令使用者非常满意。形成了部门对外展示的一个窗口。通过将各种业务数据汇总、计算分析后显示在统一的平台,方便了各级人员快捷地查看业务数据。

由于这些平台都是由部门同事自己开发的,平台功能的变更非常方便。不再需要联系Vendor去进行功能的变更,节省了时间,业务执行更流畅。而且当平台出现故障时,可以快速地分析原因,最短时间恢复平台的运转,有效减小了对业务造成的影响。

MX:相较以往传统开发,你觉得Mendix的主要优势有哪些?

刘书智:我觉得主要有以下优点

  • 开发者可以专注于业务逻辑。我觉得这是Mendix非常重要的一个优点。在使用某个高级语言进行代码开发时,我经常需要考虑某个功能,有哪些库可以实现,哪个库实现起来更方便等等。我要花很多注意力在代码本身上,而不是业务逻辑。而Mendix丰富的模块功能,及图形化的微流功能,使我更容易专注在实现业务的逻辑上,产出更高效。
  • 完善稳健的平台框架。对于Web传统开发,我必须要考虑前端使用什么语言,使用什么框架,后台使用什么语言,使用什么结构。程序的安全性怎么来保证。部署到不同的环境上,需要考虑哪些因素,来降低开发的难度和复杂性。所有这些问题,在使用Mendix时都无需考虑。只要关注在业务逻辑上就好。
  • 低代码带来的便利。很多常用的、重复性的功能,Mendix都考虑到了,并采取了各种模板技术来实现。这种便利只有在真正使用了,体会到了,才会倍感受用。低代码通常会给人一种好用可能功能就要差一些的感觉。但是Mendix很好地将易用性和复杂性平衡了。对于具备一定的Java 编程能力的开发者来说,充分利用其扩展能力,可以开发出高效的Mendix 应用。对于熟悉CSS技术的开发者,将自己的CSS技术用于美化页面显示,同样事半功倍。

MX:相较市场上其它的低代码开发平台,你认为Mendix的优势有哪些?

刘书智:在我看来主要有以下几点

  • 学习资源相当丰富。这是我在自学Mendix时最大的感受。Mendix官网有一个版块叫Learning Path,我的学习之旅基本就是在这些课程中渡过的。这里面包含了相当多的课程。而且所有课程都是分级的,从初学者到专家,都可以找到适合的学习内容。每个课程的讲解都条理清晰,很容易理解。下载示例项目,边看边做,使学习的过程非常高效。而且有些课程,除了讲解Mendix本身的功能之外,还会夹带高效编程的理念及程序设计的底层逻辑。这些内容,对于提高自己的编程修养及功底非常有帮助。
  • Mendix方方面面都可圈可点。市面上的低代码平台,大多是有所长,又有所短。可Mendix在整体的架构,系统的安全性,组态的便利性,模块的复用性,调试的难易度,部署的便利性及难易度,运行的稳定性等等方面,我都没有看到它的短板。

MX:你是否会向其他的应用开发者推荐Mendix?你会如何推荐?

刘书智:Mendix 的优点有很多。根据开发者当前遇到的困难,或者痛点,将Mendix 的优势展现给他。对于一个Mendix新手,我会强力推荐他Mendix丰富的学习资源,绝对是对新手非常友好的一款软件。

对于那些以Web 应用开发为主的开发者,选择Mendix 绝对会为你节省大量的时间成本。

MX:你希望Mendix在哪些方面进行优化和改进?

刘书智:作为一个OT工程师,曾经打算在工业自动化项目中使用Mendix。但是由于单台服务器本地部署的价格比较高,一直未能实现。如果有可能,希望Mendix将来能有针对自动化项目的产品策略。这将为自动化项目中的Web应用带来革命性的变化。对于Mendix 的功能,我几乎无可挑剔。

关于Mendix公司

Mendix公司,a Siemens business,正在迅速成为企业数字化转型的推动者。其业内领先的低代码平台和全方位的生态系统整合最先进的技术,帮助企业创造出提高互动性、简化操作和克服IT瓶颈的解决方案。Mendix公司是权威行业分析师眼中的领导者和远见者,也是一个云原生、开放、可扩展、敏捷和饱经考验的平台。从人工智能和增强现实,到智能自动化和原生移动,Mendix公司已成为数字化先行企业的骨干。Mendix公司企业低代码平台已被全球4000多家领先的公司采用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣1114.按序打印-----题目解析

题目描述 解析: class Foo {public int a 0;public Foo() {}public void first(Runnable printFirst) throws InterruptedException {// printFirst.run() outputs "first". Do not change or remove this line.printFirst.run();a;}public void second…

vue全局状态管理工具 Pinia 的使用

先了解一下关于Pinia的一些故事,面试把这些讲给面试官挺加分的,同时这是我持续学习下去的动力 1.为什么叫Pinia? 官网解释是西班牙语中的 pineapple,即“菠萝”,菠萝花是一组各自独立的花朵,它们结合在一起…

【C语言】函数----详解

🍁 博客主页:江池俊的博客 💫收录专栏:C语言——探索高效编程的基石 💻 其他专栏:数据结构探索 🏩代码仓库:江池俊的代码仓库 🎪 社区:C/C之家社区(欢迎大家加入与我一起…

安装VMware

D:\VMware\VMware Workstation\ 输入许可证

Sentinel 规则持久化到 Nacos

一、Sentinel规则管理模式🍉 Sentinel的控制台规则管理有三种模式: 原始模式🥝 原始模式:控制台配置的规则直接推送到Sentinel客户端,也就是我们的应用。然后保存在内存中,服务重启则丢失 pull模式&#…

一文详解Spring Bean循环依赖

一、背景 有好几次线上发布老应用时,遭遇代码启动报错,具体错误如下: Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name xxxManageFacadeImpl: Bean with name xxxManageFa…

实验数据origin作图使用经验总结

使用Origin绘制实验数据图表时,可以遵循以下经验总结: 选择合适的图表类型: 根据实验数据的性质和目的,选择合适的图表类型,例如散点图、折线图、柱状图、饼图等。确保图表类型能够清晰地展示数据趋势和关系。 规范坐…

常用API学习08(Java)

格式化 格式化指的是将数据按照指定的规则转化为指定的形式 。 那么为什么需要格式化?格式化有什么用? 以数字类为例,假设有一个比分牌,在无人得分的时候我们希望以:“00:00”的形式存在,那么…

3.安装kubesphere

1.本地存储动态 PVC # 在所有节点安装 iSCSI 协议客户端(OpenEBS 需要该协议提供存储支持) yum install iscsi-initiator-utils -y # 设置开机启动 systemctl enable --now iscsid # 启动服务 systemctl start iscsid # 查看服务状态 systemctl status …

【C++修炼之路】继承

👑作者主页:安 度 因 🏠学习社区:StackFrame 📖专栏链接:C修炼之路 文章目录 一、概念及定义二、基类和派生类对象赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承与友元六、继承与静态成员七…

C语言实现基于Linux,epoll和多线程的WebServer服务器

代码结构&#xff1a; Server.h 头文件&#xff0c;对函数进行了声明 #pragma once #include<stdio.h> // 新建一个用于TCP监听的socket文件描述符&#xff0c;并返回 int initListenFd(unsigned short port);// 启动epoll int epollRun(int lfd);// accept建立连接 vo…

NLP(六十一)使用Baichuan-13B-Chat模型构建智能文档问答助手

在文章NLP&#xff08;六十&#xff09;Baichuan-13B-Chat模型使用体验中&#xff0c;我们介绍了Baichuan-13B-Chat模型及其在向量嵌入和文档阅读上的初步尝试。   本文将详细介绍如何使用Baichuan-13B-Chat模型来构建智能文档问答助手。 文档问答流程 智能文档问答助手的流…

Kafka集群——(区别于Master/Slave架构的的分布式集群)

Kafka角色介绍&#xff1a; 1. Producer:消息生产者&#xff1a; 2. Broker: kafka实例&#xff0c;可以理解为一台kafka服务器&#xff0c;kafka cluster 是由多个broker构成的集群。 3. Topic: 消息主题&#xff0c;理解为消息队列&#xff0c;kafka数据就保存在topic里。…

Docker——compose单机容器集群编排

Docker——compose单机容器集群编排 一、Docker-compose概述1.为何需要Docker-compose2.Docker-compose 的特征3.Docker-compose 的优势4.Docker-compose 的劣势5.Docker-compose 的生产环境 二、Docker Compose 环境安装三、YAML 文件格式及编写注意事项四、Docker Compose配置…

常用的数据结构 JAVA

目录 1、线性表2、栈&#xff1a;3、队列&#xff1a; 1、线性表 List<Object> narnat new ArrayList<>();ArrayList&#xff1a;动态数组 1、可以嵌套使用 2、add(x)添加元素x&#xff0c;remove(index)删除某个位置的元素 3、注意list是指向性的&#xff0c…

STM32MP157驱动开发——按键驱动(中断)

文章目录 编写使用中断的按键驱动程序编程思路设备树相关驱动代码相关 代码修改设备树文件gpio_key_drv.cMakefile编译测试 编写使用中断的按键驱动程序 对于使用中断的按键驱动&#xff0c;内核自带的驱动程序 drivers/input/keyboard/gpio_keys.c 就可以&#xff0c;需要做的…

【vue3】常见的使用vue3创建项目的几种方法

1、使用ui界面创建&#xff0c;winr打开命令提示符&#xff0c;输入vue ui 2、winr打开命令提示符&#xff0c;输入vue create 项目名称 3、使用脚手架创建 其中方法一&#xff0c;方法二是使用npm run serve来运行的&#xff0c;方法三是使用npm run dev运行的

Unity进阶--对象池数据场景管理器笔记

文章目录 泛型单例类泛型单例类&#xff08;不带组件版&#xff09;对象池管理器数据管理器场景管理器 泛型单例类 using System.Collections; using System.Collections.Generic;public abstract class ManagersSingle<T> where T : new() {private static T instance;…

线性代数(主题篇):第三章:向量组 、第四章:方程组

文章目录 第3章 n维向量1.概念(1)n维单位列向量 2.向量、向量组的的线性关系(线性相关性)(1)线性表示 &#xff1a;AXβ(2)线性相关、线性无关&#xff1a; AX0①线性相关②线性无关③线性相关性7大定理 3.极大线性无关组、等价向量组、向量组的秩1.极大线性无关组2.等价向量组…

Cesium态势标绘专题-简单箭头(标绘+编辑)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…