本期创客
我在西门子工厂自动化工程有限公司工作。一直从事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业务展示大屏,是我印象比较深刻的一个应用。该应用的展示截图如下图所示。
对于地图组件的开发过程,现在还记忆犹新。由于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多家领先的公司采用。