前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Low-Code低代码应该怎么玩儿?

Low-Code低代码应该怎么玩儿?

作者头像
否子戈
发布2021-04-08 20:05:28
1.8K0
发布2021-04-08 20:05:28
举报
文章被收录于专栏:
概念

Low-Code是由Forrester(一家全球市场研究公司)在2014年提出的(全称LCAP, Low-Code Application Platform)。

虽然市面上定义各种各样,但是Low-Code的本质核心价值在于:

  • 低代码开发平台能够实现业务应用的快速交付。
  • 低代码开发平台能够降低业务应用的开发成本。

形式上,Low-Code表现为,事先通过工具生成部分代码,然后开发者需要在这份代码基础上再继续开发。现在在wikipedia上的词条叫做LCDP(Low-Code Development Platform,低代码开发平台)。

  • 低代码开发平台(LCDP)本身也是一种软件,它为开发者提供了一个创建应用软件的开发环境。看到“开发环境”几个字是不是很亲切?对于程序员而言,低代码开发平台的性质与IDEA、VS等代码IDE(集成开发环境)几乎一样,都是服务于开发者的生产力工具。
  • 与传统代码IDE不同的是,低代码开发平台提供的是更高维和易用的可视化IDE。大多数情况下,开发者并不需要使用传统的手写代码方式进行编程,而是可以通过图形化拖拽、参数配置等更高效的方式完成开发工作。

另外一家国际知名调研机构Gartner在2012年就提出了Citizen Developer(人人都是开发者)的概念。这个词大意是:借助于一些组件化、可视化平台,一些不具备编程技能、不懂代码和开发的“小白”,也能自主组织或参与开发,从而把代码开发由一项程序员专属技能扩展到更广泛的人群,甚至是全人类。在低代码语境下,Citizen Developer使用低代码平台生成符合他们意图的半成品代码,然后交由专业的开发者,完成剩余的能够真正部署到生产环境的产品。

Gartner是一个非常有趣的机构,它很喜欢制造新概念(新名词),但是不凑巧,自己提出的概念,最后被Forrestter用Low-Code抢了风头,于是他决定必须扳回一局,开始想新名词,在2017年发明了HpaPaaS(High-productivity application Platform as a Service)这个概念,但是实际上就是跟Low-Code是一回事,反而由于概念太过专业(和SaaS, PaaS概念混在一起),没有流行开,而Low-Code这个词看上去比较low(土),却成为当前该领域的术语。

但是Gartner更早提出的aPaaS这个概念确实火了。aPaaS是介于PaaS和SaaS之间的一种服务模式,主要有两个特征:

  • 提供快速开发的环境,用户在几个小时内就能完成应用的开发、测试、部署,并能够随时调整或更新。
  • 低代码或零代码,非技术人员就能完成应用开发

而这里的零代码,也就是No-Code,则是和Low-Code相对的一个概念。Low-Code还有中间的半成品代码,还需要专业开发者完成后续开发工作,而No-Code则是完全由Citizen Developer完成开发,直接测试部署,不需要专业开发者参与。aPaaS平台,国外发展比较快的厂商有:Redmine,Jira,Odoo,Smartsheet, Airtable和Zoho Creator,中国市场有简道云、明道云、氚云和伙伴云等厂商。它们的产品形态,基本上就是企业主上它们的在线平台,通过填写、拖拽等形式,完成一个业务及其流程的设计,然后发布,获得对应业务的链接,再发送给自己的员工或客户,让员工或客户在这个链接对应的应用中完成相应的操作。

从商业价值来看,aPaaS已经证明了自己的价值,而低代码平台至今仍然是概念火,但赚钱能力存疑。

国内外Low-Code/No-Code列举

Mendix-被西门子用6亿欧元收购的新独角兽,低代码开发平台。

Outsystems-独角兽公司,国外知名的drag drop IDE。

Odoo-准备进军中国的低代码编程工具。

PowerApps:微软旗下

AppMaker: 谷歌旗下

牛刀:可以搭小程序等

搭搭云

APICloud

iVX-国内的可视化编程工具代表。

宜搭:阿里云钉钉旗下。

活字格

简道云:含自定义表单、自定义报表、自定义流程引擎、消息提醒等模块

轻流

飞冰

Gin-Vue-Admin

Low-Code技术解析

首先,区分场景

  • 在线设计应用,发布后获得一个url,用户访问这个url完成业务,例如问卷、H5活动页
  • 在线对应用的界面、流程、逻辑进行设计(编排),导出api接口,应用根据接口描述自己决定怎么渲染和创建运行时

第一种场景适合功能单一的即时性应用。

第二种场景适合功能复杂的业务系统。

方案一

用户在平台对界面和数据进行编排,点击发布,平台立即生成数据库表、接口、静态文件,并完成打包,发布到云服务和CDN。使用时直接访问html文件。

方案二

用户在平台对界面和数据进行编排,点击发布,平台立即生成数据库表、接口、半成品代码,之后由专业开发者完成剩余代码开发,并按主流构建发布逻辑完成发布。

方案三

用户在平台对界面和数据进行编排,点击发布,平台立即生成数据库表、接口、布局配置(文件或存表)。运行时,由后端根据配置文件或配置表动态渲染页面。

方案四

用户在平台对界面和数据进行编排,点击发布,平台立即生成数据库表、接口、布局描述DSL。运行时,前端通过API接口读取DSL,并进行解析,完成渲染,并按DSL中提供的信息提交数据。

其次,技术要点

1. 可视化拖拽

参考《可视化拖拽组件库一些技术要点原理分析》

2. 数据表

例如问卷,创建一份问卷之后,除了问卷作为一个表单的交互层面的东西,还要有用来保存该表单提交的所有记录的数据库表,以及用于接收提交的API接口。

3. 代码生成

参考Gin-Vue-Admin

4. 生成静态文件

基于SSR的思路,直接生成html。

或者不直接生成HTML,而是利用webpack进行打包。

5. 配置

从可视化拖拽/填写->配置文件/表->渲染。

生成配置过程比较麻烦,苦力活,需要根据设定好的协议,例如比较火的JSON Schema,生成配置。

从配置到渲染过程就相对简单,读取配置,根据定好的规则,选择使用不同的组件和配置的逻辑进行渲染。

6. DSL

过程和5配置一样,从可视化拖拽/填写->DSL->渲染。只是更加抽象化,通过自己发明的一套特殊语法来完成对功能的描述。

由于DSL是一种编程的语言,所以,目标是简单,因此,对于使用者而言,可以不需要可视化拖拽界面,而是直接写DSL即可,例如腾讯问卷可以使用文本方式编辑和生成问卷,以及使用高级方式编辑问卷各个题目之间的逻辑关系。

用户可以在可视化编辑和DSL之间切换,根据自己喜好来使用。

7. 逻辑编排

类似Scratch、nodered

8. BPM流程引擎、表单引擎、布局引擎

需要投入大量时间和人力去研究和填坑。

Low-Code是否会让程序员失业?

会。看看搭搭云的介绍视频就知道对程序员的友好程度有多差,它里面明确传递给企业老板一个信息:不需要一个开发团队了,一两个程序员就搞定。

但是,你要看清楚场景。很多使用Low-Code平台的企业,要么是那种小企业,他们巴不得不需要程序员,对于程序员而言,也不是职业发展的可靠伙伴,不去也罢;要么是大企业中某些业务环节,例如明源云解决房地产领域的业务,这种不仅不会让程序员失业,更多的反而是帮助程序员节省时间和精力。

我需要自己搭一套Low-Code平台吗?

除非你的企业为其他企业提供类似aPaaS这样的服务或产品,否则千万不要为了自己的单一业务开发Low-Code平台,它说白了,是用一套成本非常高的技术,通过低价量大来实现回本,所以为了自己当前单一业务去开发平台,是吃力不讨好。但是并不是说你不能借用里面的一些技术点,例如基于拖拽生成的技术。

但是,如果你能够沉淀出类似飞冰这样的产品,那对于需要反复使用某些架构的新项目来说就是好事。简单说,就是,把你所接触的业务沉淀到一个低代码工具中,当有新产品需要该业务的逻辑时,马上拿出低代码工具,生成几乎所有必须的套件,然后才开始开发,那种感觉还是很爽的。

结语

抛开Low-Code这一概念,我们在业务开发中,有的时候也是需要基于某种协议做动态定义与渲染的,特别是某些比较特定的业务系统中,需求方总是希望自己可以通过在线修改,来快速完成需求调整,而非要通过该代码和发版。掌握这种抽象能力,对我们的开发能力提升,有非常大的帮助。至于Low-Code平台,目前除了aPaaS平台,类似问卷这样的纯表单应用,还有前两年在线生成H5请柬、贺卡等应用,也是有很大的空间,掌握Low-Code整套技术,对无论在企业内打工,还是自己创业,都有帮助。

Robust是一档以技术话题为核心的播客节目,你可以在喜马拉雅、网易云音乐、PodCast、小宇宙等APP上搜“Robust”找到节目进行搜听收藏。如果你对其中的某期节目感兴趣,可以通过下方的留言给我反馈。如果你喜欢这档节目,请不吝打赏,支持我继续做下去。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 唐霜 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概念
  • 国内外Low-Code/No-Code列举
  • Low-Code技术解析
  • Low-Code是否会让程序员失业?
  • 我需要自己搭一套Low-Code平台吗?
  • 结语
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档