图解低代码“四搭建”:(上篇)怎样理解低代码

2,094 阅读10分钟

背景:最近要在团队内部做一次关于低代码的技术分享,所以最近打算把之前2~3年的低代码平台开发经验,以及对其他大厂和开源的低代码产品的研究和学习做个系统梳理,希望能相对清晰完整地给各位同事介绍低代码的概念和原理、方法和实践、优势和不足,方便各位同事在学习和使用低代码时做个参考。

现在分享低代码相关概念已经非常简单了——因为有各个大厂以及大量开源的低代码产品、白皮书、教程、技术分享和真实系统可以参考——所以文章中对于推荐阅读的内容我会注明出处,方便大家可以进一步地去了解。

《图解低代码“四搭建”》会以系列文章的形式,有步骤、有重点地分享我对低代码“四搭建”的研究学习和开发经验,目前该系列文章有如下3篇:

  1. 图解低代码“四搭建”:(上篇)怎样理解“低代码”
  2. 图解低代码“四搭建”:(中篇)图解低代码“四搭建”
  3. 图解低代码“四搭建”:(下篇)低代码怎样才能用好

以下是《图解低代码“四搭建”:(上篇)怎样理解“低代码”》的文章正文。

1、怎样理解“低代码”

每一个领域都是一个知识体系,每一个知识体系都是由概念组成,而学习概念的一个很好的方式之一,就是跟我们之前接触过的相关概念做个对比。

接下来,为了更好地理解“低代码”这个概念,我们就拿两个跟它相关的概念做个对比——“零代码”和“纯代码”:

怎样理解低代码:零代码vs低代码vs纯代码.png

1.1 零代码

也许你在微信朋友圈、公众号或者消息里面,收到过一些会议邀请函、招聘启事或者问卷表单等等。

时间长了、看得多了,你就会发现这些邀请函或者问卷表单等等,它们的展示形式、交互方式等等都很相似,而且在很多场景下反复出现。

假如你结婚了,想要给亲戚朋友发一个结婚邀请函,有了类似需求(当然你也有可能想制作一个短视频,但是你还是想再制作一个邀请函),那么你留意一下,就会发现很多相似的邀请函来自同样的几个域名,比如下面的易企秀

eqxiu-designer.png

我之前在易企秀做过H5编辑器的开发,是易企秀早期员工之一,经历过它早期用户数的指数级增长。

当时在手机上非常流行H5——一种卡片式、通过滑动翻页的移动页面。即使你是一个专业的程序员——能够手写代码——在当时也要制作几个H5,比如校园招聘、社会招聘的招聘启事啥的。

即使你是一个前端开发熟手,自己手工开发一个H5页面也需要一番功夫、几天时间:

  • Step 1、设计:设计师进行页面设计、切图;
  • Step 2、实现:前端进行页面开发,布局、动画、交互实现(往往需要借助第三方库);
  • Step 3、上线:将制作的H5页面,通过运维上线。

而通过易企秀这样的H5编辑器,同样的H5页面、开发时间可以缩短到几小时:

  • Step 1、设计:找相似的模板和图片等素材资源;
  • Step 2、实现:修改模板上的文案和图片;
  • Step 3、上线:直接发布上线、不需要额外的服务器资源。

H5编辑器的上手门槛很低——许多大爷/大妈学习使用电脑,很多都是从怎么制作H5相册开始的——许多图书馆的对外培训项目,就会教你怎么制作H5相册。

我们以在创客贴中制作一个可视化图表为例:

创客贴-图表制作00 图表制作三步骤.jpg

整个过程可以分为3步:

  • Step 1 图表:从柱状图、折线图、饼状图中选择图表;
  • Step 2 数据:填充图表需要用到的数据,类似填写Excel的表格形式;
  • Step 3 设置:设置图表中各个组件的样式,比如图表X轴、Y轴等等。

零代码图表搭建示例-创客贴.png

我们可以看到,通过这种简单的可视化拖拽和可视化配置的形式,能极大地降低开发者的上手门槛,以及效率方面的极大提升。

产品经理们有一个价值公式 —— 产品价值=新体验-旧体验-替换成本:

用户价值=新体验-旧体验-替换成本-H5编辑器.png

因为H5编辑器确实能降低门槛、带来相当大的效率提升,所以除了易企秀之外、还有很多优秀的H5产品出现——比如创客贴兔展MAKA,开源的H5-Dooringquark-h5luban-h5,以及已经不再提供的百度H5等等:

百度-H5.jpg

所以,像H5编辑器、表单编辑器等等零代码产品,能让没有开发经验的技术小白,通过可视化拖拽和配置,就能完成在H5营销页/表单收集页等特定场景的应用开发工作,极大地降低研发复杂度、降低成本和提高效率。

1.2 纯代码

能点击进来、正在阅读这篇文章的人,应该都是专业的程序员——“纯代码”就是指我们平时手写代码的开发方式,上面提到的H5编辑器、表单编辑器等等零代码编辑器,以及即将讲到低代码“四搭建”编辑器,也都是使用“纯代码”开发的:

阿里低代码引擎 Demo.png

我们会使用工程手段和工程工具,考虑代码仓库的分包:

阿里低代码引擎MonoRepo-vs-MultiRepo.jpg

架构的分层:

阿里低代码引擎-分层架构.jpg

模块的分类、分区、分块:

阿里低代码引擎-编辑器.png

以一个Web应用的开发为例:

Web应用=前端+后端+数据-产物+要素+Demo.png

  1. 我们往往已经掌握了多个领域语言和框架(比如表达前端页面的 HTML + JS + CSS + Vue/React、后端的 Java + SpringBoot、数据库 SQL 等语言),并熟练使用它们的惯用法;
  2. 我们能够交付前端UI页面,开发时我们会关注页面、组成页面的组件、组件的状态和事件等等;
  3. 我们能够交付后端API接口,开发时我们会关注业务逻辑、实体、实体的属性和方法等等;
  4. 我们能够交付数据库表,开发时我们会关注数据库、数据库表、表的字段和索引等等;
  5. 我们能够理解多个领域的语言和框架在语法、语义上的不尽相同,比如JSON(数据传输)、JS/TS、Java、MySQL 在类型上的对照:
JSONJS/TSJavaMySQL
booleanbooleanbooleanBIT(1)
numbernumberbyteTINYINT
numbernumbershortSMALLINT
numbernumberintINTEGER
numbernumberlongBIGINT
numbernumberfloatFLOAT
numbernumberdoubleDOUBLE
stringdecimal.jsBigDecimalDECIMAL
stringstringStringVARCHAR/TEXT
stringInt8Arraybyte[]BINARY
stringBlobbyte[]BLOB
stringstringUUIDchar(36)
stringDateLocalDateDATE
stringDateLocalTimeTIME
stringDateLocalDateTime/ZonedDateTimeDATETIME
stringenumenumENUM/VARCHAR

因此,作为一名专业开发者,纯代码是我们最熟悉的开发方式,通过手工编写代码、完成应用的开发工作——包括核心应用/核心系统的开发,以及包括零代码编辑器和低代码编辑器的开发。

但是同样很明显的,为了完成一个应用的开发工作,往往需要我们在不同领域掌握不同的开发语言和框架——比如表达前端页面的 HTML + JS + CSS + Vue/React、后端的 Java + SpringBoot、数据库 SQL 等语言——这对于业务人员和技术小白来说,有一个不小的上手门槛。

1.3 低代码

说完了技术小白也能用的“零代码”,以及我们开发人员熟悉的“纯代码”,再来看看我们本系列文章的主题——低代码。

怎样理解低代码:零代码vs低代码vs纯代码.png

低代码是通过提供类似“零代码”的可视化拖拽和配置操作,就能完成类似“纯代码”的应用开发工作。

1.3.1 低代码“四搭建”

以上面我们提到的一个Web应用的开发为例,我们需要交付的产物往往包括以下3个部分:

  • 前端UI:我们通过HTML + JS + CSS + Vue/React等等开发语言和开发框架完成前端页面——这一部分往往被称呼为“UI”(User Interface,用户界面)或者“GUI”(Graphical User Interface,图形用户界面)——用户可以通过手机、平板和电脑等等设备,以图形用户界面的方式访问我们的应用;
  • 后端API:我们通过Java + SpringBoot等等开发语言和开发框架完成的后端逻辑开发——这一部分往往被称呼为“API”(Application Programming Interface,应用编程接口)。一种流行的API的接口风格叫做“RESTful API”,它把服务器端的内容看做“资源(Resource)”,我们通过HTTP的各个动词——比如GET、POST、PUT、DELETE等等——对资源做增删改查等各种操作;
  • 数据库表:我们通过数据库的SQL等语言,创建数据库表等等,数据的原子操作有四种,即我们常说的“增删改查”(SELECT、CREATE、UPDATE、DELETE)。

Web应用=前端+后端+数据-物理架构.png

而低代码,分别通过“页面”搭建、“逻辑”搭建和“数据”搭建,实现同样的前端、后端和数据方面的产物:

Web应用-前端、后端、数据产物vs页面、逻辑、数据搭建.png

实际上,通用的低代码平台往往会提供以下四种内容的搭建——流程、页面、逻辑和数据——被简称为“四搭建”:

低代码“四搭建”截图-流程、页面、逻辑、数据.png

而低代码“四搭建”(流程、页面、逻辑和数据),正是本系列文章要讨论的核心内容,接下来的文章我们将会围绕着低代码“四搭建”进行详细讨论。

1.3.2 零代码 vs 低代码 vs 纯代码

在下面,我列了一个简单的表格,用来将零代码、低代码和纯代码进行对比:

零代码低代码纯代码
What无需开发经验,技术小白/销售/业务通过可视化拖拽和配置,就能完成应用的开发工作公民开发者/业务人员通过可视化拖拽和配置,就能完成应用的开发工作专业开发者通过手工编写代码的方式,完成应用的开发工作
Who技术小白/销售/业务人员等等Citizen Developer(公民开发者)/业务人员专业开发者
How可视化拖拽/简单配置可视化拖拽/配置(包括表达式)手写代码
Why降低研发复杂度、降低成本和提高效率降低研发复杂度、降低成本和提高效率核心系统
When低成本创建通用页面等等低成本创建应用核心系统开发
WhereH5营销页/表单收集页等特定场景报表/数字大屏/流程表单等应用场景核心应用/核心系统/中间件开发

如果从需要写的代码量这个维度上看:

代码量对比:零代码vs低代码vs纯代码.png

  • 零代码:不需要写代码,只需要通过可视化拖拽和配置,就能完成开发工作;
  • 低代码:同样使用可视化拖拽和配置完成开发工作,不过需要写一些代码表达式,比如绑定数据字段等等;
  • 纯代码:往往通过手工写代码的方式、完成主要的开发工作。

如果从“开发能力”和“适用范围”这两个维度上来看:

  • 零代码开发能力 < 低代码开发能力 < 纯代码开发能力;

  • 零代码适用范围 < 低代码适用范围 < 纯代码适用范围。

纯代码vs低代码vs零代码.png

以上是我们《图解低代码“四搭建”:(上篇)怎样理解低代码》的主要内容:

  • 我们通过对比“零代码”“低代码”和“纯代码”的特征和区别,从整体上、直观地理解了“低代码”——“低代码”采用了“零代码”的可视化拖拽和可视化配置的开发形式,试图降低应用开发的上手门槛,使得公民开发者/业务人员等等、通过拖拽和配置也能完成应用的开发工作;
  • 我们引出了低代码“四搭建”,接下来我们将会对低代码“四搭建”展开更仔细的解构、分析和学习。