APP下载

深入评析低代码开发平台

2021-06-24

中国信息技术教育 2021年11期
关键词:代码开发者用户

编者按:随着学校数字化建设的不断深入,如何选择适合的数字化开发工具并落地,成为许多学校和相关信息化部门关注的焦点。低代码开发平台通过自动代码生成和可视化编程,只需要少量代码,即可快速搭建各种应用,满足了很多开发人员和业务人员的需求。本期我们将围绕低代码开发平台,从三个维度展开分析,希望为读者带来切实的帮助。

应用沙龙

主持人:

郭卫丹  浙江師范大学附属中学

嘉  宾:

刘宗凡  广东省四会市四会中学

邱元阳  河南省安阳县职业中专

倪俊杰  浙江省桐乡市凤鸣高中

杨  磊  天津市第五中学

APaaS火爆背景

邱元阳:去年,我们讨论过学校数字化建设中的前台和后台的链接点,即将业务共同的工具和技术予以沉淀的“中台”这个概念。今年,“低代码”接力“中台”成为新的IT热点,引发了众多业内人士论战。其中有两种极端的观念,一种是“低端炒作”“玩具开发”,另一种是“颠覆行业”“取代码农”。若说“颠覆”“取代”,事实上,低代码、图形化的开发模式存在至少已有20年历史了,又岂能在今天突然颠覆?若说“低端”“玩具”,事实上,最早的国外低代码平台OutSystems、Mendix都已成为新兴的独角兽企业;亚马逊、微软、华为、阿里、腾讯等国内外IT巨头,以及大量传统软件厂商、新兴SaaS厂商纷纷进驻该领地,如此势头,又岂能以“无意义”一言概之?低代码的形式是“可视化编程”,核心是“复用”。像中台一样,提高复用率是低代码的关键。但单单“复用”不足以解释今年低代码平台的火爆,低代码突然火爆的原因是什么?

刘宗凡:邱老师提出的问题很有意义,以往,程序设计和应用开发不可避免地要写代码,因而成为比较专业的领域。对教师来说,大都接触过很多厂商和机构提供的为了降低编程门槛和开发难度,针对非专业人员的积木式编程和开发工具,如针对低龄儿童的积木式编程工具Scratch和编程猫,针对手机应用开发的App Inventor,针对儿童机器人活动的乐高,针对教学课件的红月亮等。这些积木式开发工具,将常用功能和算法集成到了相应的模块中,简化了程序设计代码,甚至完全屏蔽了代码,使编程和开发可以由普通用户和非专业人员来完成,减轻了开发人员的劳动强度。对积木式编程工具而言,还可以避免枯燥的语法和算法破坏程序设计体验,减少算法恐惧,使学生尽早接触编程。对积木式开发工具而言,大幅度减少了写代码的工作量,并可以使更多的人参与到开发中来,不仅使开发者有成就感,而且吸引了更多的用户,并降低了最终用户的成本。教学环境中,也有很多可以利用的无代码开发工具,如秋风试题系统、方正奥思创作工具等。当下,云计算技术的成熟、应用移动化等,为低代码2.0提供了技术基础,这好比互联网出现前夕,计算机网络是一座座孤岛,互联网打破了这些孤岛。同样,如今的信息孤岛、云端孤岛屡见不鲜,曾经的低代码作为开发工具也只是在构建孤岛。但“低代码+云”的想象力将不止这些,如果能形成“互联、共生的生态”,它有可能打破当前应用与应用、企业与企业、开发者与开发者之间的孤岛现状,大大提高代码复用率,进而引发一次效率的飞跃。另外,国外低代码平台成功商业化,国内“互联网+”“数智化转型”热潮等都是低代码开发升级的催化因素。

低代码平台核心要义

郭卫丹:和企业软件开发与应用一样,在学校信息化建设过程中,在享受一些成功软件项目的便捷增效中,我们也看到很多失败的例子,无法为学校带来预期价值。软件产品的搭建从原生代码开发到SaaS租用再到低代码平台的尝试,都是人们为了降低开发成本、控制项目风险、提高开发效率不断努力的结果,人们期望能找到更通用更高效的解决方案。低代码平台之所以能广泛应用于使用单位软件的搭建,就是因为从底层思维出发找到了使用方的软件的某些要义,即绝大部分单位的软件由业务实体、业务流程、业务活动、业务权限、统计报表这几个要点组成,因此,低代码平台若能将以上要点抽象后实施,可形成比较通用的用户软件解决方案。

倪俊杰:业务的实体更明确地说就是操作对象,如教师、学生用户,也可以是某个应用表单。这就需要我们在低代码平台中建立数据模型来提取业务实体的数据特征,抽象为数据表,建立表间关系。在软件开发前期制作ER图的过程就是数据建模。常见的低代码开发平台均提供了丰富的控件,可以拖拽完成数据模型搭建。此外,数据模型搭建与表单展示合二为一,每完成一个数据表的创建,就自动生成了该表的“增删改查”功能及相关页面,进而隐藏了数据库设计、前端开发这些专业技术。其实,这也就是我们常说的表单引擎。虽然很多低代码平台将数据建模与表单展示合二为一,但通过这种方式自动生成的表单只能实现最基础的“增删改查”页面,用户对界面展示内容及形式的控制程度很低,无法满足大部分软件的需求,所以,低代码平台一般还会提供自定义页面功能,用户可根据需要在页面上配置按钮、图表等元素,以满足个性化需求。以明道云平台为例,对单个业务实体创建界面及平台自动生成的新增该业务实体页面分别如图1和图2所示。以学生、班级为例,配置了“班级”这个业务实体包含的字段,并设置了“班级”实体与已创建的“学生”实体的1:N对应关系。

杨磊:我来说一下平台是如何支持另外三个要素的,业务流程是指为了实现某项目标,由多人合作,按照一定的规则、顺序进行的一系列活动,即进行何种操作,如采购申请、物品领用。在软件中,业务流程的参与者可以是人,也可以是子应用。低代码平台实现了可视化流程配置,用户对触发条件、处理节点、节点参与者进行配置,实现自定义业务流程。图3和图4是以宜搭中的流程工具制作的学校采购订单流程和领用申请的业务流程配置界面。

业务权限就是何种角色拥有何种权限,包括数据查看权限和数据操作权限,如教务人员可以管理所有学生信息,而班主任只能管理自己班级的学生信息。业务权限对低代码平台来说尤其重要,新接手用户拥有太大权限会给开发工作带来很大的风险。所以一定要确保为每个用户提供他们所需的功能。例如,需要开发简单报表任务的用户不应该具有创建数据库管理应用的权限。所以,低代码平台都采用了非常经典的基于角色的访问控制(RBAC,Role-Based Access Control )模型管理用户权限,简单来说就是将拥有相同权限的用户添加为相同角色,通过为角色分配权限,实现“用户—角色—权限”的授权模式。类似学校就是一个组织,下辖都会有各个学校部门的概念,所以,也可以将部门添加到某个角色,实现“用户—部门—角色—权限”的授权模式。下页图5为用宜搭平台对学校总务部门的物品领用流水进行权限管控的页面。

统计报表就是在表单/流程表单中收集得到的数据,可通过报表来进行查看、分析和处理,查看从哪些方面量化单位整体活动情况,如班级考勤、食堂用餐分析可以类比Excel中的透视图,统计图表由数据源、统计规则、展示形式定义,低代码平台也正是遵循这种方式,实现了统计图表的可视化配置,甚至还可以做出比较专业的BI、仪表板应用程序,非常适合学校根据数据变化趋势做出决策和学校数据中心展示,图6为借助明道云创建的统计图表配置页面。

解析“低代码”的常见误区

郭卫丹:低代码开发平台,正在风靡整个IT世界。毕竟能够以最少的編码快速开发应用的想法本身就很吸引人。但是,随着它受欢迎程度的提升,围绕着低代码的各种误区也随之而来。我们希望通过破解这些低代码的误区,帮助读者更好地了解低代码开发平台这个低门槛、高效率的软件开发新选择。首先,业内还是有很多人认为低代码仅适用于平民开发者,大家怎么看?

邱元阳:我想大多数从业者可以使用低代码来轻松开发所有类型的应用。在详述这个观点之前,让我以学校为例,先看一下从事应用开发的人员可以分为哪几类。

业务人员:包括没有编码知识,但在校办、教务、总务等学校行政服务领域的操作人员。

IT人员:包含学校信息科或信息技术教师。他们编码经验相对不高,但熟悉电子表格,并且具有JavaScript、PHP、Python等脚本语言的基本知识。

专业开发者:与学校原先软件业务有联系的编码专家,熟练掌握一门或多门编程语言及相关工具,经过短时间的培训就能和学校现有使用低代码平台衔接。

与专业开发者相对应,业内一般将前两者统称为平民开发者。事实上,平民开发者和专业开发者都可以使用低代码开发平台,但开发的应用程序的功能和复杂性会有所不同。使用低代码平台,平民开发者可以构建非常简单的应用,提供基本功能。专业开发者可以开发出更复杂的应用,功能和复杂度都可以高于平民开发者开发的应用。在这个过程中,低代码开发平台帮助专业开发者减少所需的手动编码量,缩短应用交付的时间周期。简而言之,无论是平民开发者还是专业开发者,低代码开发平台都可以从不同维度扩展他们的能力,做出更有效能的应用。

①采用低代码/无代码的单位必须具有一定的数字化基础,以学校为例,相关教职员工也必须具有最基础的表单、流程等基础信息素养,客观来讲,所谓低代码/无代码,并不是像大家从字面上看到,可以什么都不用学就能开发软件。如果学校没有数字化氛围,教职工没有对所从事的业务以及流程有深刻理解,根本无法生成应用软件,更不可能对学校数字化建设发展产生正面的作用。

②要对所在单位实际业务的痛点有深刻的认知。学校相关职能人员都必须曾经面对在教务、财务、科研等方面最关键的痛点,这样新应用才能够解决这些痛点,否则开发的新应用将成为无源之水、无本之木。

③虽然低代码开发平台能够建立全新的数据,但学校已经积累了一定的数据,如师生基础数据、学校资源数据、选课数据、财务数据等,可以快速地理解应用目的,通过低代码开发,加快一些利用现有数据进行数据打通的应用开发进程。

④个性化需求更强的学校,更容易利用低代码平台开发满足自己个性化需求的应用。开发更快、代码量更低,这是低代码开发平台永远的追求,也是学校提升到智慧校园级别的体现。

郭卫丹:从字面上看,低代码开发平台似乎只适用于软件开发生命周期(SDLC)的开发阶段(如图7),大家怎么理解?

刘宗凡:事实并非如此。优秀的低代码平台,可以非常有效地支持整个应用交付生命周期:设计、开发、测试/调试、部署、运维和迭代。这些平台通常配备了可视化开发工具,增加了一键式部署、自动运维等功能。这些功能通过在SDLC内持续迭代应用,缩短了产品的上线时间。可以通过领域模型的构建开发出不同类型和规模的应用,如单位官网、APP、ERP等。其能应对单位不同程度的复杂场景开发需求,即能服务不同规模的用户方。现代的软件开发流程与协作模式,凝聚了数代软件人的智慧,并形成了完整的生态系统,广泛服务于包括专业级软件在内的各类软件项目。一些基于模型驱动的低代码平台可适配业界主流的敏捷式开发流程,覆盖应用开发的全生命周期。另外,低代码开发虽然通常以云端形式面向开发者,但也有单位从数据安全、完全取得软件所有权方面考虑,希望进行本地化服务器和软件应用部署。这也完成了一个完整的软件开发生命周期,国内如腾讯云、活字格等低代码开发平台都开放了本地化部署模式。

具体从架构模式上看,本地化低代码开发平台往往由开发设计器、服务器,以及第三方提供的协作服务器构成,覆盖专业级应用开发的全生命周期。通常情况下,开发者使用低代码开发平台开发专业级应用的流程如下:开发者使用开发设计器,启动开发工作。如需与其他开发者组成团队,共同推进项目开发,或者需要进行版本管理,开发者可以利用协作服务器(如码云、GitHub等互联网或安装在局域网内的Git服务器)和其他开发者进行协作。开发者在自己的计算机上,通过设计器构建数据表、服务端逻辑、页面等元素,完成应用开发和调试后,可以利用一键发布功能,将应用打包成可发布文件,部署到本地服务器上。其中,系统管理员可以通过管理控制台,可视化管理系统用户和权限,并且完成网络安全、自动备份等配置工作。配置完成后,用户即可通过浏览器、APP、微信、钉钉等多终端使用开发者构建的专业级应用。从这里可以得出,一个可靠的低代码开发平台可以完成处理软件开发生命周期所有阶段的内容。

郭卫丹:软件开发生命周期可能还是比较专业,对初学者来说还有一个常见的误区:常常在低代码和无代码之间混淆,并倾向于互换使用它们,大家能谈谈对此的理解吗?

倪俊杰:低代码和无代码这两个术语本身具有误导性,因为两者的真实区别不在于人们是否需要编码。其区别主要在于使用这些平台构建应用的人的类型。低代码开发平台可以帮助平民开发者在没有任何编码的情况下创建简单应用,并且能够让专业开发者通过少量编码,快速构建出更复杂的应用。虽然无代码平台允许平民开发者创建基本应用程序,但它们对专业开发者毫无用处。没有足够扩展能力和编程接口的无代码开发平台以及部分低代码开发平台的使用者,在遇到复杂的单位业务要求时,会遭遇之前开发的工作量前功尽弃的风险,这也是很多开发者对低代码开发平台产生疑虑的主要原因之一。事实上,成熟的低代码开发平台因为其足够的开放性,可以支持开发者像纯代码开发一样做出各种功能,包括但不限于连接第三方软件,还可以硬件驱动程序。以活字格为例,可以对接企业微信、钉钉等第三方平台,还可对接用友、泛微等专业既存系统,并能对接高拍仪、扫码枪等硬件设备。我们可以想象低代码开发会在物联网APP开发中拥有广阔的前景,尤其对硬件底层不太熟悉的学校用户就不用再依赖各设备厂商和软件厂商来帮其开发物联应用,业务人员自己就可以上手,使业务部门可以聚焦应用和技术开发并口管理,组件高复用提升可靠度,降低多头私有开发、代码质量参差不齐带来的安全风险,应用开发安全和目的性更明确可靠,简化APP应用管理的复杂性,为物联网应用APP的敏捷开发提供了一条便捷的途经。这也是低代码开发平台与无代码开发平台之间的具体差别之一。

杨磊:我再补充一点,低代码和无代码之间的差异对许多人来说的确是模糊的,因此导致人们认为低代码平台仅具备有限的可定制性和可扩展性,低代码平台无法通过精心设计的UI/UX设计来开发大型应用。事实上正相反,低代码开发平台可以满足高度复杂应用需求。在业务逻辑方面,自定义代码和重用业务逻辑的选项使开发人员可以自由添加所有必需的功能,并对其进行自定义,以满足业务需求。除此之外,低代码开发平台还提供了开发引人入胜的UI/UX设计所需的所有工具,对行业理解较深的低代码开发平台就内置有与行业相关的大量素材、样式主题以及所见即所得的页面元素样式设计器。通过低代码开发平台,开发者可以开发出包含内部协作系统、用户特色服务系统(如课程资源库、课堂\教师评价等)在内的各种专业级大型应用。如果单位的项目需要保持统一的VI,还需考虑在开发平台上引入统一的CSS样式,如上页图8所示。

结语

讨论到这里,关于低代码开发平台的误区已经被破解了。相信软件公司或者使用单位自身的IT部门甚至业务人员都可以利用低代码开发平台,快速开发出面向未来的应用和扩展。需要强调的是,虽然本栏目连续两期都在讨论低代码开发,但要说哪一种实现路径占优,都是片面的,只是站的角度不同而已。在数字化发展的大潮中,低代码无代码开发平台要让每个人,包括开发者和普通业务人员,都能够成为各自单位数字化过程中的主导者和构建者。无论是原生开发模式、SaaS模式,还是低代码平台,变化的都是软件开发模式,而永远不变的是让技术赋能业务,为单位创造价值。对每位尝试在学校数智化变革有所贡献的教育工作者来说,对业务的理解能力、抽象能力、解决方案能力都值得不断去提升。

猜你喜欢

代码开发者用户
您拨打的用户已恋爱,请稍后再哭
基于用户和电路的攻击识别方法
信用卡资深用户
神秘的代码
“85后”高学历男性成为APP开发新生主力军
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
16%游戏开发者看好VR
近期连续上涨7天以上的股