低代码技术与市场(Mendix与 OutSystems)

低代码技术与市场(Mendix与 OutSystems)
本文主要参考文章
参考链接
https://mp.weixin.qq.com/s/OXCBORheAx99o3fS-ZfUdg
https://blog.csdn.net/qq_38352351/article/details/110160054
低代码分析
低代码和无代码(称零代码)是什么关系、怎么判断一个低代码平台是否专业、国内是否有专业的低代码平台、低代码是不是新瓶装旧酒、低代码真的搞不定专业的企业应用吗、低代码不适合开发哪些应用、低代码并非银弹。
01
低代码和无代码是两回事
第一步得把低代码和无代码分清楚,因为这俩差异巨大,但现在业界经常混为一谈,导致很多很多问题,比如双方争论但指的不是同一个事情,厂商的口径乱,行业报告的结果不能看。
低代码专指低代码应用开发平台(LCAP),是一个被业界广泛认可的概念,头部的分析机构如Forrester和Gartner都已经发布了多年低代码开发平台的报告。如下图所示,大家可以看到这两家的报告入选的产品都很接近,特别是头部的六家简直是一模一样。这说明低代码应用开发平台已经是一个比较成熟的市场。

低代码技术与市场(Mendix与 OutSystems)

但无代码的“通用”开发平台,不会存在。因为开发软件必然要编写逻辑,就必然要写代码,除非哪一天人工智能能做到自动写代码。
低代码和无代码的关系有点类似于关系数据库和NoSQL。关系数据库专指一种特定的数据库,即便多家厂商的产品实现可能千差万别,但至少提供的功能很相似,都高度遵循SQL标准。低代码开发平台虽然今天的标准化程度还没关系数据库这么高,但无论是Gartner还是Forrester都已经开始给出比较清晰的筛选标准,如要支持通用场景(如UI、逻辑和数据三层都要有)、要满足专业开发需求等,随着行业发展标准化程度肯定会进一步提高。NoSQL只要不是SQL都算,不管是KV、wide-column、文档还是图,都可以叫NoSQL。NoSQL这个词热了有几年,但现在不太讲了,因为市场格局开始清晰之后,大家就不会关注过于宽泛的NoSQL,根据需要关注具体的类型。无代码这个词会慢慢淡出,虽然现在十二个门派很是热闹,但不出几年真正有影响力的门派肯定不多,这时大家就不关注无代码直接找具体的产品了。
低代码不是一个想吸引业务用户的用语,业务人员见了“代码”两个字就吓跑了,再低没用,如果业务人员写不了100行代码的话,10行一样写不了。低代码平台主要面向专业开发,这点已经是头部分析机构的共识,虽然Forrester之前走过弯路,曾经发布过面向业务人员的低代码开发平台报告,但近两年已经不再发布了,只保留面向专业开发者的低代码报告。用户数据说明这一点,21CTO在《低代码开发可不低,用户仍需要与IT技术部门联手》一文中提到据某统计“只有6%的低代码开发是由业务人员完成的”,OutSystems的数据是69%的用户是专业开发,宜创科技CEO宜博曾说低代码面临“懂技术的看不上,懂业务的学不会”的尴尬。
所以无代码和低代码完全不同,无代码面向业务人员,低代码面向开发人员;无代码泛指多种开发细分领域应用的工具,低代码特指一种通用开发工具;无代码不被国际头部分析机构认可,低代码被广泛认可。
现在国内很多行业专家和分析机构经常把两者混为一谈,这对技术的价值衡量、甲方的技术规划和选型都造成很大混乱,迫切希望大家能够把低代码和无代码区分开,集中研究具备通用能力的低代码平台。
02
专业的低代码长啥样
现在市场上鱼龙混杂号称“低代码”的产品很多,怎么才能快速区分是不是“专业”简单,找一个最专业的产品对标。
哪个产品才是最专业的以先看为什么低代码这两三年才热起来是因为Salesforce这样的SaaS厂商,不是Appian这类BPMS厂商,这轮低代码热其实主要是因为OutSystems。OutSystems虽然早在2001年就成立,但之前一直“猥琐发育”,2018年D融资了$3.6亿,才突然引爆市场。无论Forrester还是Gartner都把OutSystems列入领导者象限,最推崇的低代码平台就四个,OutSystems是其中之一。所以,OutSystems就是专业低代码平台的代表。
对比OutSystems和很多国内所谓的低代码平台,找出了六项区分度最高的判断标准:模型驱动、可视化开发、表达式语言、软件工程、开放集成和脚本语言。
(1)模型驱动
“模型驱动”可能是最明显的区分标志,因为刚好有一个很流行的概念叫“表单驱动”。很多人搞不清楚这两个概念,但其实这两类产品挺好区分。
首先可以看用户手册,不用安装试用能看出差别。使用模型驱动的平台比如OutSystems、Mendix的手册会有很大一章讲怎么做数据建模和处理,包括怎么定义实体、实体间关系、主键、唯一性、索引、数据怎么访问、筛选、分组、统计等等,还提供SQL或类似扩展。使用表单驱动的产品则往往手册第一章就是说明怎么定义各种表单,都是各种和界面相关的控件,比如单选多选下拉框、文本日期数字等。

其次可以看界面。下图是分别是模型驱动的OutSystems和某表单驱动产品的相关操作界面,是不是很不一样。

低代码技术与市场(Mendix与 OutSystems)

(表单驱动)
(2)可视化开发
可视化开发不是拖拉拽做个界面(这只能叫可视化设计),有完整的可视化编程语言系统,能够编写业务处理逻辑。看OutSystems类产品的文档,会发现很多编程语言的基本构造都有,比如顺序 / 分支 / 循环 / continue / break、输入输出参数、局部变量 / 全局变量、struct和list、异常等。虽然这些东西都是拖拉拽完成,没有密密麻麻的一行行代码来吓人,但足以吓退业务人员。一下几张图都来自于OutSystems,大家可以感受一下。

低代码技术与市场(Mendix与 OutSystems)
(怎么抛出和处理异常)
(3)表达式语言
表达式语言有些类似Excel里的公式,有表达式语言才可以做一些比较复杂的计算。下图是OutSystems的表达式编辑器,有各种操作符,有很多内置函数,比如数学函数、字符串处理函数等。 低代码技术与市场(Mendix与 OutSystems)
表达式语言有更平易近人的设计,比如轻舟就是用类似Scratch的积木块设计。两种设计功能上是等价的,积木块设计更容易上手,Power Fx这样的设计写复杂表达式更方便。
(4)软件工程
专业的低代码平台需要提供测试、debug、版本控制等软件工程支持。开发软件都会出bug(低代码平台基本消除了语法层面的bug,但对语义层面的bug一样无能为力),需求总是会变。所以测试、debug、版本控制这些支持是必不可少的。OutSystems为什么做的最好,跟完善的debug支持是分不开的。下图是OutSystems的debug界面,看起来和专业IDE有的一拼。
低代码技术与市场(Mendix与 OutSystems)

(Delphi的主界面,实现了用户界面的可视化设计)

低代码技术与市场(Mendix与 OutSystems)
低代码技术与市场(Mendix与 OutSystems)
低代码技术与市场(Mendix与 OutSystems)
低代码技术与市场(Mendix与 OutSystems)
低代码技术与市场(Mendix与 OutSystems)
低代码技术与市场(Mendix与 OutSystems)

需求3.某次培训参加人数的总和
思路:当学员注册的时候,获取学员注册的课程,然后查找这个课程下所有注册学员的总数。

低代码技术与市场(Mendix与 OutSystems)
低代码技术与市场(Mendix与 OutSystems)
低代码技术与市场(Mendix与 OutSystems)

四、数据的有效性与一致性检验
数据校验
根据真实的业务逻辑,用户在输入数据的时候,在Mendix中去验证一个数据是否符合业务要求。
Mendix数据的信息、值保存在哪br> Attribute特征中,属性值
Association中:关联关系的值,也就是箭头的指向
在Domain Model中验证Attribute特征数据的有效性

###1.利用Validation Rules(这个名词,只能针对Domain Model中的Attribute数据校验)
六种验证规则
Required 必填,Unique 唯一,Equals =某个值,Range 范围,Regular express 正则表达式,
邮箱:1+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$
Maximum length 最大长度
2.在Microflow中验证Associations关联关系数据的有效性
例如:周四的数学课这个TrainingEvent,必须把它和课程、老师、上课地点关联在一起。
但这个关联关系的指向不能再Domain model中用Validation Rule做判断
这个时候我们就要利用微流中的Decision来做数据有效性 的判断
如何写Decision表达式:
也就是微流表达式
调用一个Attribute值:$EntityName/AttributeName
T r a i n i n g E v e n t / S t a r t D a t e ! = e m p t y A N D 调 用 一 个 A s s o c i a t i o n 的 指 向 ( 值 ) : TrainingEvent/StartDate != empty AND 调用一个Association的指向(值): TrainingEvent/StartDate!=emptyANDAssociationEntityName/ModuleName.Association
$TrainingEvent/MyFirstModule.TrainingEvent_Course != empty

低代码技术与市场(Mendix与 OutSystems)

3.数据的删除
在新建一个Association时,它就会要求我们设定删除方式
一共有三种删除方式:
举例:Registration和TrainingEvent
A. 当删除TrainingEvent时:
保留所有与它相关的注册信息
同时也删除所有与它相关的注册信息(Cascading Delete)
只有当TrainingEvent没有关联任何注册信息,它才能被删除
选第三种方式!!!
B. 当删除Registration时:选第一种方式
Registration注册信息—–Trainee学习
1.删Registration时,Trainee不受影响,所以选第一种
2.删Trainee时,所有与他相关的注册都删了,选第二种方式
五、权限管理
一、Mendix权限管理概要
Mendix的权限管理在两个地方实现
Project Security:设置app总体安全级别和配置总体权限
Module Security:设置具体的每个页面page,微流microflow,实体entity甚至特征attribute的读写权限
只需要通过点击配置实现!
三种安全级别

低代码技术与市场(Mendix与 OutSystems)
低代码技术与市场(Mendix与 OutSystems)
低代码技术与市场(Mendix与 OutSystems)

二、两种角色:User Roles与Module Roles
我们要将Module Roles和User Roles链接在一起!
1)是将Module Roles赋值给User Roles
2)然后再将User Roles和我们终端用户的账号绑定
三、权限配置的基本步骤
四、其他配置

低代码技术与市场(Mendix与 OutSystems)

参考链接
https://mp.weixin.qq.com/s/OXCBORheAx99o3fS-ZfUdg
https://blog.csdn.net/qq_38352351/article/details/110160054


  1. A-Za-z0-9u4e00-u9fa5

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113318 人正在系统学习中

来源:普通网友

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月2日
下一篇 2022年3月2日

相关推荐