前言

低代码(LowCode)/无代码(NoCode)”是技术界近几年的热门词汇之一,随着企业数字化发展的深入,越来越多的场景化需求要求企业具备更加灵活敏捷的应用开发能力,传统应用开发模式周期长、技术人员能力要求高,无法满足快速变化的市场需求,由此,提供便捷应用开发能力、降低开发门槛的低代码无代码技术应运而生。

通过低代码无代码技术,企业人员能够通过可视化的界面,以拖拉拽方式快速搭建软件应用,以搭积木的方式快速组成满足各类需求的产品,极大提升开发效率,最大化降低人力和时间成本,推动企业数字化升级。

笔者工作中涉及到低代码和无代码的技术选型,对比过宜搭、鲸智搭、简道云、明道云等数个国内头部厂商的低码/无码平台,最终通过对比价格功能场景技术栈客户关系定制交付能力等各种因素选择了浩鲸科技的鲸智搭产品,下面以鲸智搭产品为示例,分享一下个人对无代码/低代码的理解。

一、低代码/无代码能用来做什么?

首先,从企业日常应用的产品分类开始讲起。

企业应用的产品可以从产品标准化程度和市场规模这两个维度来考虑,大致可以分为如下三类,低代码平台在这三类产品中都存在用武之地:

​                                                     图1 业务应用系统需求分析

A类:大型专业应用

图1中的A象限的应用系统,此类型的应用产品标准化程度高,市场规模大,存在成熟应用软件。例如CRM领域的Dynamic 365和Salesforce,ITSM领域的ServiceNow应用开发平台,这些大型系统在实施过程中,客户存在的定制化需求是通过低代码平台提供的二次开发能力进行实施的,能够有效降低定制开发的门槛和成本,在Gartner低代码应用平台LCAP(Low-Code Application Platform)的报告中,微软的Power Platform和Salesforce平台都是归属魔力象限的第一象限。

B类:市场容量小,标准化程度低的中小型业务应用

图1中的B象限的应用系统,此类型的应用产品标准化程度不高,市场规模不大,导致通常以客户化定制为主,独立软件提供商ISV一般不会研发此类产品,通常采取的策略通过项目方式进行孵化。主要的矛盾点就是研发成本较高和交付周期较长。通过低代码平台既可以快速完成此类业务应用从0到1的孵化,也可以快速满足1到N的项目定制和落地。

C类:碎片化的个性需求

图1中的C象限的碎片化需求,企业除了专业的应用软件系统的需求,例如财务系统,销售系统,这些都可以从市面上找到成熟的应用软件。不过除此以外企业还存在非常多的碎片化长尾需求,这些无法通过采购获取。例如企业的职称评审,需要申报的内容和材料,评审的流程,评分标准等等都会差异较大,这类需求通常也不能通过采购已存在的应用软件来满足。

二、低代码/无代码平台由什么组成?

指导理论:倒三角双分层模型

其中倒三角指的是业务需求可以根据复杂度由低到高进行分层,复杂度可以根据对表达能力的要求作为度量标准,按照经验由简单到复杂大概可以3层,并且这3层的需求量是依次递减的。

  • 表达能力要求低,交互和逻辑不复杂,可以通过固定的表达方式来表达的需求,固定的表达方式包括工作表,表单,业务规则,仪表盘,自定义页面,业务流等。
  • 表达能力要求中等,交互和逻辑较为复杂,灵活性要求更高,但也存在一定的规律,客户端界面功能可以通过各种技术组件的组合来完成。
  • 表达能力要求高,交互和逻辑非常复杂,无法提炼成常见的技术组件。

双分层指的是在上述对业务需求按照复杂度进行分层的基础上,提供分层的产品和工具,不同需求类型可以使用不同产品和工具实现,通过相互配合达到成本和效率的最优。

​                                                     图2 倒三角双分层模型

按照上述“倒三角双分层模型”,低代码平台针对不同的分层分别提供了无代码产品,低代码工具,高代码工具3种方式应对,下面将对这3种方式依次做简单介绍。

无代码产品

●工作表

工作表用于数据在线录入和管理,工作表是应用系统的基础,仪表盘基于工作表的数据完成数据的分析和展示,审批流可以基于工作表的记录完成流程的流转和处理,工作表具备两种展现方式:

(1)列表视图:展示多条记录的摘要信息

​                                                        图3 无代码列表视图

(2)表单视图:展现单条记录的详情信息

​                                                图4 无代码表单视图

这两种形式相互配合,列表视图能够用于类似请假申请中的“我的请假申请”的查看和管理,也能用于查看和管理“我负责的部门下所有请假记录”的查看和管理。表单视图能够用于单条记录的详情展示和变更,也可以用于审批流中数据的采集和变更,以及流程流转的条件判断等。

●报表 & 仪表盘

仪表盘通常用于业务统计数据的分析,例如我负责部门的指定月份的请假情况统计分析,全年请假情况统计分析,订单销售系统中的销售统计分析,人力资源中人员年龄、性别等分布统计分析。

图5 仪表盘

●自定义页面

自定义页面通常用于应用首页或者各种需要灵活布局展现的页面,例如不同类型的用户需要有不同的首页,首页会包含各种网页小组件,用于用户快速查看信息,以及方便快捷地使用应用提供的功能。

​                                                                图6 自定义页面

●业务流

​                                                图7 业务流(审批流程图)

业务流用于规范和控制业务执行的流程和逻辑,业务流按照有无人工节点作为划分标准,分为两种类型:

(1)业务审批流

该流程具备人工参与节点,触发后某些环节需要人工参与,例如完成审批以及信息的回填操作。业务审批流程同需要跟工作表配合一起使用,例如请假申请,公司用车申请等,流程表单通常会触发相应的审批流程,例如请假会有审批环节,当请假申请提交后会流转至相应的环节给指定人或者角色进行审批。

(2)业务逻辑流

该流程没有人工参与节点,触发后立即执行完成。例如根据判断条件,定时或者手工触发修改工作表中记录的状态。

低代码工具

低代码工具主要面向的是具备一定开发能力的初级开发人员,例如需要懂代码的版本管理工具Git,具备关系型数据库的基础知识。低代码是对无代码的一种补充,跟无代码相比,低代码工具的表达能力更强。不仅能够面向数据模型进行配置开发,也可以面向已有系统或者外部系统提供的API接口进行开发。具备手工调整界面样式的能力,也能够满足更复杂的布局和交互方式。

低代码是作为无代码的补充而不是竞争而存在,因为面向的用户和业务场景都是不一样的,无代码在特定场景的效率是远高于低代码的,而低代码的表达需求的能力是远高于无代码的。

●低代码IDE工具

低代码IDE工具提供了在线使用和本地安装两种版本,在线IDE版本由于需要跟服务端容器配对关联,所以需要消耗一定计算资源,提供了如下功能:

· 模型设计:用于设计关系型数据库模型,以及预置的静态数据;

​                                                图8 低代码IDE-数据模型设计

· 界面开发:用于界面的可视化阔拽开发和视图领域语言 View DSL的编码开发;

​                                                图9 低代码IDE-界面可视化开发

· 客户端逻辑开发:用于前端逻辑的可视化开发或者客户端逻辑领域语言Client Action DSL的编码开发;

​                                        图10 低代码IDE-客户端逻辑可视化开发

· 后端服务开发:用于后端逻辑的可视化开发或者服务端逻辑领域语言Server Action DSL的编码开发;

​                                        图11 低代码IDE-服务端逻辑可视化开发

· 外部接口集成:导入和管理外部Open API标准规范描述的HTTP协议接口;

●转换编译器

转换编译负责将低代码的3种领域语言(数据模型,视图,客户端和服务端动作)转换成相应目标语言。

鲸智搭跟目前国内市面上大部分低代码产品相比,最重要的区别就是属于编译转换执行,具备无技术锁定的特性。应用运行时能够完全基于主流开源框架(JDK/Tomcat/Mybatis/Spring/Apache 类库等),不依赖鲸智低代码平台提供的容器和运行环境。

●开发运维中心

开发运维中心主要是面向低代码的开发和运维人员,负责管理低代码应用的全生命周期,包括:

· 低代码应用运行环境的创建和维护,运行环境包括应用的运行容器,数据库等;

· 低代码应用的创建,开发,发布和升级部署;

· 低代码应用运行态的监控和运维。

高代码工具

简单的说高代码就是用来做无代码和低代码做不了的事情。高代码面向的是专业的前后端开发人员,高代码可以单独做一个完成的需求,也可以跟无代码和低代码一起配合,完成复杂场景一部分需求的开发,例如一个完整的客户端功能界面,或者嵌入到无代码表单界面的一个组件,亦或是后端复杂的业务逻辑。

●微件库

微件是集成在无代码或者低代码客户端(前端页面)的一个组件,该组件是根据鲸智低代码微件的标准规范开发手工编码开发完成。微件库是一个用于管理微件全生命周期的管理工具。开发人员可以在微件库完成微件的创建,编码实现,版本创建和发布等。发布到微件库的客户端组件能够跟无代码表单和自定义页面,以及低代码视图编辑器对接集成。

表单业务逻辑

无代码表单编辑器提供了JavaScript脚本语言扩展能力,可以监听表单内部组件的事件,触发相应的逻辑,并且也可以跟无代码提供的标准API访问后台数据,调用前端表单组件SDK实现复杂的定制化逻辑。

扩展包

扩展包(Extension Package)是手工代码编写的前端工程,可以热插拔到无代码/低代码应用中。扩展包可以同时实现多个界面功能,并且跟无代码配置出来的界面进行交互融合,包括路由,鉴权,事件交互,以及数据交换等。

SDK

平台提供两种类型的SDK:

· 客户端SDK:属于系统内置开发SDK,主要用于无代码表单组件状态管理和后端API接口访问请求发起。

· 服务端SDK:根据元数据的数据结构和关系自动生成,主要用于后端数据访问。

●标准API

根据元数据的数据结构和关系自动生成开箱即用的GraphQL标准接口,具备标准GraphQL接口提供的所有能力。标准API根据场景不同分为两种:

· 动态解析型API:应用于无代码场景,工作表配置完成并动态发布以后就可以实时生成相应API接口;

· 静态编译型API:应用于低代码场景,需要根据元数据生成相应的后台代码。

三、低代码平台有什么优势?

优势一、特定场景10倍以上的效率提升

无代码产品具备极致的高效低门槛特性,能够把门槛降低到业务人员经过若干小时自学或培训就可以完成常见功能的配置和发布。相对于手工编码从需求调研,编码实现,版本发布,环境升级整套流程相比,无代码至少可以完成10以上的效率提升。

优势二、具备全业务场景覆盖的能力

低代码平台通过倒三角双分层模型(参见图2),提供了无代码,低代码和高代码3种方式,针对需求的特性找到最佳的实现方式,让功能强大和易用性高两者兼备成为可能。

优势三、提供低代码工具提高开发效率

· 同时具备可视化拖拽和领域语言DSL编码两种模式的低代码产品,做到既可以低门槛拖拽开发,也可以高效率手工编码。

· 具备实时错误检查和快速错误定位的低代码产品,能够实时检查错误配置和编写错误,对配置开发效率提升巨大。

· 具备无技术锁定的低代码产品,鲸智低代码应用采用转换编译方式进行发布和运行,运行时不依赖平台自身的解析引擎,而是完全依赖开源基础框架和环境的低代码产品;

·业务组件和低代码技术组件具备事件交互能力的低代码产品。并且具备跟业务组件跨应用远程集成能力。

总结

目前笔者已经通过鲸智搭无代码平台已经搭建了数十个应用,包括:行政办公相关场景、运营提效相关场景、IT管理相关场景、问卷调查相关场景;优点是开发效率高,开发门槛低,支撑力度大,基本不用再去研发部门排期几个月,基本满足自给自足;也有一定的缺点,例如表单组件和宜搭、明道云比会少一些,仪表盘和简道云比组件会少一些。

什么是低代码(LowCode)/无代码(NoCode)平台?相关推荐

  1. 低代码和无代码,完全是两回事

    ▲ 点击上方"分布式实验室"关注公众号 回复"1"抽取技术书 按规则这篇应该叫做"数字技术名词解释-低代码",但之前的名词解释篇都是一两天草 ...

  2. 从低代码到无代码:可视化逻辑编排

    点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 背景介绍 近年来,关于低代码(LowCode)和无代码(NoCode)的讨论在前端社区内越来越火,简单的说低代码就是通过编写少量代 ...

  3. 网页漂浮物代码_无代码VS低代码。 有什么不同? 它。 不。 物。

    网页漂浮物代码 You may hear the terms "No Code" and "Low Code" thrown around by develop ...

  4. 低代码、无代码?深度解读硅谷新趋势

    今天我们来深入聊聊"低代码.无代码"(Low code, No code). 年初,钉钉公布自己的进化方向:"低代码.无代码工具".大洋彼岸,Low code, ...

  5. 低代码、无代码?深度解读硅谷新趋势(上)

    今天我们来深入聊聊"低代码.无代码"(Low code, No code). 年初,钉钉公布自己的进化方向:"低代码.无代码工具".大洋彼岸,Low code, ...

  6. Mendix:低代码与无代码的异同点与用例

    投稿 | Mendix 编辑 | 宋 慧 头图 | 付费下载于 IC photo 低代码和无代码应用开发都遵循着代码抽象化原则来实现建模的可视化.但基于这两种方法构建的应用在规模和类型却有着根本性的区 ...

  7. 低代码开发平台_什么是低代码和无代码开发平台?

    低代码/无代码开发平台是一种可视化软件开发环境,允许公民开发人员拖放应用程序组件,将它们连接在一起并创建移动或Web应用程序.这种模块化方法使专业开发人员可以免除他们逐行编写代码的需要,从而更快地构建 ...

  8. 程序员该如在低代码和无代码开发中抉择?

    [CSDN编者按]"低代码开发"旨在开发人员可以通过编写少量代码就可以快速生成应用程序的一种方法. "无代码"开发平台是为那些不知道也不需要知道任何实际的编程语 ...

  9. 前端代码为什么会有低代码及无代码

    概念 什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解? 行业里流行观点,低代码是更加易用的搭建系统,无代码是图形化和可视化编程.这种观点把低代码和无代码开发分别置于 UI ...

  10. 低代码和无代码开发的4个安全问题

    低代码并不意味着低风险.企业鼓励更多人员开发应用程序,然而低代码开发会产生新的漏洞,并可能隐藏安全问题. 什么是低代码? 低代码(Low Code)是一种可视化的应用开发方法,用较少的代码.以较快的速 ...

最新文章

  1. ii7+php5.5+phpMyAdmin-4.1.0
  2. 转【查看oracle数据库的连接数以及用户 】
  3. system函数 与 exec函数的区别
  4. Linux下查看txt文档
  5. c++ cstring 转换 char_Java基本数据类型的介绍及其转换(内附字符串与多种数据之间的转换)...
  6. math.hypot java_Java Math hypot()用法及代码示例
  7. (转)关于BigDecimal 转化字符串toPlainString()和toString()的区别
  8. adb shell 之 screenrecord
  9. 2022最新爱思助手怎么用 爱思助手使用方法【教程】
  10. 加载gif图片html,JS实现的自定义显示加载等待图片插件(loading.gif)
  11. B站莫烦Python基础学习笔记
  12. Asp.net 使用weboffice实现Word在线编辑
  13. sqlite可视化工具sqliteman的问题
  14. tomcat设置为开机自启动
  15. OSError解决办法
  16. mariadb数据库基本使用
  17. PPT2016内嵌Excel的动态图表
  18. bilibili缓存文件在哪里_不要再胡乱清理手机内存,花1分钟删掉这些文件夹,释放大量空间...
  19. Java使用SWFTools转换PDF为SWF
  20. android之禁用Appt2

热门文章

  1. tcping命令详解
  2. FORTAN中一个表达式多行
  3. 搭建Hadoop开发环境(全过程)
  4. 凯撒密码转化,循环,C语言版!
  5. Qt 信号槽的应用(二)
  6. MSP432P401R学习:CCS入门实验练习,使用CCS新建、导入、编译、下载工程
  7. C语言十进制转换二进制
  8. matlab绘制爱心
  9. php视频转发,蓝叶分享好看视频地址解析php代码
  10. Telegram支持删除双方设备中的聊天记录