前言
低代码——是一个每隔几年就会站上时代风口的概念,但每次的内涵都有所不同:21世纪初,基于UML的模型驱动设计大行其道;10年前,快速原型开发的可视化程序设计得到广泛应用;而近两年,基于组件的业务流程快速搭建开始流行。这些都属于低代码概念下的不同范畴。为何低代码(基于组件的业务流程快速搭建)这两年突然火了起来,个人觉得主要有以下几点原因:政府政策驱动:在国家大力推动政企数字化转型的背景下,低代码开发可以有效解决企业在数字化转型过程中遇到的研发资源、人力贵等问题。技术发展驱动:在科技高速发展的浪潮下,云计算的时代已悄然来临,云原生、容器、微服务等一系列技术的发展,为低代码SaaS平台提供了基础支撑。社会环境驱动:受疫情影响,企业的效益和集中办公受到很大影响,促使企业选择成本更低、效率更高、受办公约束更低的低代码开发模式。那么,低代码开发具体是什么?又如何利用低代码技术实现低门槛、高效能的数据分析建模工作?接下来与我一起走进低代码的世界,一探究竟。
走进低代码的世界
关于低代码,网上有很多不同的定义,在此引用维基百科中的说法:低代码开发平台(英文:Low-Code Development Platform 简称LCDP),是一种方便产生应用程序的平台软件,软件有开发环境让用户以图形化接口以及配置编写程序,而不是传统的程序设计作法。这个定义可以理解为,低代码是一种可视化搭建系统,低代码开发是一种可视化应用开发方法,通过低代码开发,不同经验水平的开发人员能够通过图形界面,使用可视化建模和拖拽式组件的方式来创建应用,低代码开发减去了非技术开发人员的压力,帮其免去了代码编写的工作,同时也为专业开发人员提供了支持,帮助他们提取应用开发过程中的繁琐底层架构和基础设施任务。 其核心思想就是:以一种”所见即所得“的编程思想为原则,力图实现编程工作的可视化,降低编程开发门槛,提高应用开发效率。了解了低代码,接下来我们根据几个重要特征作为维度,对低代码进行归类。由于业界对低代码的概念并未形成标准,以下部分分类是我个人的理解和经验总结。
在这个维度下,具体的应用开发模式可以分为纯代码(Pro-Code)、低代码(Low-Code)和无代码(No-Code)三种,从中英文字面上也可以看出,这三种模式的差别很大。
· 纯代码开发(Pro-Code):此模式是目前业界比较传统的开发模式,它指的是用手工编码的模式开发应用。这种模式的特点就是:应用中所有的业务逻辑的实现全部都要靠编码实现,这其中会因编码技术人员能力的差异,对后续维护成本的影响也是可见的。比如说:要实现某一功能,需要把全部的代码码上去,因为每个人写代码的逻辑不一样,所以对于实现同一个功能,有的人可能几行代码,而有的人可能会不停的去嵌套逻辑,用了很多行代码。大家应该都知道代码越多,后期需要维护的成本就越高。
· 低代码(Low-Code):此模式的开发过程需要有代码的参与,特别是面对一些复杂的业务逻辑时,通过表达式或者直接编码的方式来表达,反而更加清晰。从前面维基百科中的定义我们也可以看出,低代码的本质其实是可视化拖拽结合少量代码;目前在低代码开发领域一个比较主流的手段就是可视化编程,它主要解决的是应用开发流程(布局、交互、数据)中的交互环节。这也将是我在后续案例中主要介绍的方法。
· 无代码(No-Code):此模式的开发过程没有任何的代码的参与,不仅是从开发者的角度看是这样的,从无代码内部的实现方式看也是这样的。理论上,在低代码成熟度到一定高度时,在某些细分领域是可以实现无代码的开发,但实际上,这种难度是巨大的,毕竟目前真实的应用开发都是有诸多的业务前提的。
在这个维度下,可以将开发平台的使用者分为:专业技术人员、业务技术人员和相关无专业技能的人员。一般地,低代码开发的主要用户群体是专业技术人员和业务技术人员,并且,随着低代码开发平台的熟程度上升,业务技术人员的用户群的占比会有所上升,因为成熟度高的低代码平台,其可视化工具链相对比较健全,可以很好的降低业务研发的难度和代码量。在后续的案例介绍中,我们产品主要的用户群也是符合这类用户群体的。在这个维度下,低代码开发可以分为通用型和专用型两种;通用型:指的是开发平台不事先设定自身只能应用到特定的行业领域,而是具有广泛的适用范围。这样的平台通常需要一个通用的底座,这个底座是纯技术性的,它不依赖于特定的业务功能,而只与业界广泛使用的标准协议,技术标准产生耦合。这种平台的优点是在各个业务领域都能够发挥作用,但同时其构建难度和弊端也是相对明显的,众所周知,越通用往往意味着在特定业务场景的效率越低。从业界比较成熟的产品来看,它们一般都具有相对丰富的业务插件,通过定制特定场景的插件,来解决效率问题。专用型:指的是开发平台事先设定好了自身的行业领域,这类开发平台走的是精专的路线,由一个细分领域切入,逐渐完善该领域的可视化工具链,也为后续逐步拓宽行业领域奠定基础。这个维度的低代码平台也是相对容易入手,也是当下业界比较主流的低代码平台的类型。
上述从三个维度对低代码的分类进行了介绍,接下来,我们一起将目光聚焦到数据分析建模领域,看看低代码技术在该领域是如何放光发热的。
低代码视角下的数据分析建模
我们都知道,随着大数据的不断积累,数据逐渐成为了企业的核心资产,为了将数据的价值最大化,越来越多的企业将精力投入到数据挖掘这一板块,带来的影响就是企业投入的成本越来越高,但产生的价值远未到达到理想状态,这是当下亟需解决的一个痛点。
另一方面,近些年来,大数据人工智能挖掘技术得到了快速发展,数据分析建模人员需要学习越来越多的技术,比如说:编程语言类的Python、R、Scala等;数据查询类的关系型数据库、Hive、Hbase等;算法建模类的Sklearn、Tensorflow、Pytorch等;分布式存储计算类的:Hadoop、Spark、Flink等;可以预见的是,随着技术继续高速的发展,会有更多的计算建模框架涌现出来,而适应这些计算框架会增加企业的建模成本。同时,人工智能的建模也需要专业的算法工程师参与,算法工程师需要深入理解业务场景,并在不同计算框架下尝试各种经典算法模型,整个过程会变得费时费力。因此使用低代码数据分析建模平台能够有效解决上述的痛点,不仅如此,低代码开发还能够让数据分析建模简易化、规范化,并能有效降低沟通隔阂,实现高效建模,产生业务价值。如果此时的你正在寻找这样一个低代码平台,请继续往下看。
在实践中感受低代码的魅力
本公司自主研发了一款跨平台统一大数据分析处理与可视化编程平台,该平台具备以下几点功能与特性:
· 可视化拖拽与程序代码双编程模式:业务人员通过对图标节点拖拽的形式,构建计算流图,对流程参数进行配置,让用户无需编码即可实现数据挖掘流程构建,与此同时,计算流图和算子可提供算法名称和业务名称的双模显示;另外面对专业技术人员还支持Python、R、Scala程序设计语言代码编程开发模式。
· 多环境大数据分析处理于存储能力:平台的大数据集编程计算环境,支持数据查询、图计算、机器学习、深度学习、流式计算等多种计算模式,底层可集成使用Hadoop、Spark、Tensorflow、Scikit-learn、Flink等各种主流的大数据计算引擎,支持平台选择和混合调用。
· 建模全生命周期管理:平台支持业务技术员和专业技术人员通过可视化拖拽构建好的计算流图,一键保存至模型仓库,同时支持模型的一键部署、上下线、版本更新等管理;对于在建模或模型上线后产生的数据支持以表格和多图表的方式展示,便于提升业务人员对数据的洞察能力。
· 高效稳定的接口扩展能力:平台提供了高效稳定的扩展接口,使用用户可以快速扩展新的业务模型,让数据分析建模平台在日后源源不断的建模分析场景中更有生命力。
接下来我们通过一个案例来初步感受一下低代码在数据分析建模领域带来的便利。2.数据导入Hadoop当中, 该数据必须包含edges.csv和vertices.csv的文件夹
新建并进入画布,在左右的算子组件库中找到 图计算/经典图计算算法/CSV文件转图。拖入进画布,鼠标左键点击画布中的算子,在右侧的弹框中配置相应的参数,点击运行。
上述步骤运行成功后,再拖入三角形计数算子,并和上一个算子进行连线,鼠标左键点击该算子,在右侧的参数框中配置参数,点击运行,运行成功后鼠标右键查看结果。
(图可视化展示)
总结
本文主要介绍了低代码的概念、分类,低代码技术如何在数据分析建模领域发挥作用;然后介绍了我们开发的低代码数据分析建模平台;最后演示了在平台上通过拖拽的方式完成图计算算法生成一个关系图谱的的案例,展现了低代码的核心价值:“所见即所得”、低门槛高效率。
我们的跨平台统一大数据分析处理与可视化编程平台仍在积极开发当中,当前版本的功能也已经基本完善,目前支持私有云部署形式对外提供试用,欢迎感兴趣的读者前来垂询。