前端低代码标准化元年,那些你需要了解的

22,863 阅读7分钟

近些年低代码方向十分火爆,低代码工具百花齐放,经过多年的摸索和沉淀,前端低代码主流思路已经趋于稳定。本文将从低代码爆发的背景说起,为大家介绍目前低代码的发展情况以及前端低代码技术体系。(本文中的低代码泛指低代码和无代码)

背景和发展情况

低代码发展线索3.png

近些年低代码发展的线索有两条,一个是企业信息化需求快速增长,OA、ERP、CRM等传统企业软件场景功能早已成熟,低代码可以把众多场景的经验给提供出来,通过配置和简单修改让大量普通企业用到流水线生产的软件,这让很多传统的企业软件公司进入到低代码领域。

同时,消费互联网见顶,互联网企业把注意力投向企业信息化赛道,BAT等大厂先后入局。互联网大厂在企业信息化赛道的布局有哪些呢?最重要的布局就是大家熟悉的——云服务,以AWS为代表,BAT都有自己的云。此外,阿里和腾讯还有杀手锏级别的超级应用——钉钉和企业微信,这是他们近几年在这个方向集中发力的重要原因。用户入口和云服务基础都有了,就差业务系统了,那用什么做业务系统呢?答案正是低代码。于是有了阿里的宜搭、腾讯的微搭和百度的爱速搭。

云钉互联.png(阿里宜搭生态)

低代码发展的另一条线索是互联网公司内部研发提效的探索,这方面的代表有百度的Amis、蚂蚁的云凤蝶和淘系的飞冰Appworks等。与第一条线索不同,第二条线索是聚焦在前端的,因为大厂内部的研发方式是前后端分离。经过一段时间的探索,云凤蝶和淘系中后台无代码平台最终走向场景化和自动化,参考附录1和附录2。

互联网大厂站在两条线索的交点上,沉淀了丰富的低代码能力,以今年3月阿里发布低代码引擎为标志,前端低代码正式进入标准化时代。阿里低代码引擎3个月star数7000,社区参与非常活跃,对业界的巨大影响力正在逐渐显现。

低代码技术体系

协议是低代码的产物规范,相当于纯代码开发的代码。阿里低代码引擎的核心是正是协议,协议定义了物料和搭建、渲染之间的互动关系,架构了可视化搭建的生命周期,是第一个低代码体系标准。在此基础上,引擎的上层建筑——物料工具、可视化编辑器和渲染能力等,实现了引擎的主体能力,所做选型也是前端低代码趋于稳定后的主流思路。此外,在可视化编辑器层面还定义了面板插件和设置器生态。这样一个以协议为基础,引擎为骨架,插件生态做拓展的体系是经过沉淀的成熟结构。引擎的详细介绍可以参考附录3和我的另一篇文章“阿里低代码引擎架构分析”。

低代码引擎-分层架构.jpeg(阿里低代码引擎分层架构)

可视化编辑器是进行低代码开发的的核心工具,而低代码作为一种研发形式,是以纯代码研发方式为基础的,我们可以从现代前端研发的几个要素入手去解构低代码可视化编辑器。

  1. 视图层的基础——画布。画布的核心是拖拽,调整视图元素的位置关系,主要有容器布局和自由布局两种方式,目前容器布局方式采用较多。
  2. 组件化时代——属性设置器。现代前端是组件化的时代,使用组件就是设置属性,因此设置器是用户在低代码平台上操作的重点区域。
  3. 现代前端的核心——数据绑定和更新。我们平时已经习惯了在html标签里面放数据变量进行数据绑定,通过setState等方法进行数据更新,低代码平台一般是通过在组件的属性设置器中声明绑定变量进行数据绑定,通过自定义事件代码调用setState等方法进行更新。这个部分是低代码平台之间差异比较大的地方,特别是全局状态值的设置和事件代码的写法。
  4. 更多编程要素——事件声明,循环绑定,条件渲染,插槽等,都是必须具备的能力。

下面是用低代码平台开发 todo list 的一个演示。完整视频链接在这里

低代码演示.gif

低代码方向上不只有前端低代码,还有服务端低代码,服务端低代码核心要素有数据模型定义和逻辑可视化,以及一些代表性工具,如流程引擎、系统互联工具和RPA等。目前前端同学主要关注前端低代码,但是打通任督二脉之后的全栈低代码会比单纯前端更高效。

低代码场景和展望

我们还是能听到对低代码的质疑声,但是在不知不觉间,它已经完成了第一波的攻城掠地。对于以下这些情况来说,低代码已经成熟。

  1. 模式化场景,可以基于模板配置完成。举例:上文提到的企业信息化方面的员工管理、资产管理和目标管理,以及项目管理、客户管理、售后管理、进销存管理,甚至是小程序商城、线上教育平台等。在我们熟悉的前端领域,有B端数据增删改查功能和C端模式化营销活动等。这也是目前低代码的重点应用领域。
  2. 产研团队有标准前端设计体系。前端设计体系包括design tokens和组件体系。举例:使用Antd或是Vant等通用设计体系的团队和有自研设计体系的团队。这类场景可以充分利用低代码平台的能力,在已有组件和标准的基础上进行属性设置和逻辑控制,有一定的学习成本,但是能够提效,与第一种场景结合使用效果更好。只要低代码平台把退出通道出码能力做好,可维护性方面协议兼容性等问题考虑好,就不需要有太多顾虑。
  3. 对设计体验要求不高的简单C端系统,比如小型公司的一些小程序应用完全可以用微搭来做。

低代码的另一个优势是云原生,研发流程简单,可以快速响应业务需求。也便于服务端和产品等角色在适当情况下独立完成研发。

在低代码的大背景下我们应该做些什么呢?那就是利用低代码能力打造新的研发设施,紧跟先进生产力。在我所在的后台前端团队,典型的功能正是增删改查类场景,占比大约在70%。我们利用阿里低代码引擎打造了通用的后台功能快速可视化搭建平台,并基于 AntDesign ProComponents 开发了先进的增删改查场景物料,用一个组件满足了后台系统中的大部分功能。目前已经完成了多个功能的上线,实现了开发效率的大幅提升。

低代码和纯代码开发,会在某些场景下解决相同的问题。依托完全不相同的生产工具,运用不同的生产力,产出同样的产品。比如我们有“纯手工艺”也有“自动化生产线”都可以制造产品。未来的软件研发,必定是低代码和纯代码相结合,在不同场景下选择合适的方式。

低代码融合1.png