Low-Code Development Platform: WOLF

# WOLF的功能介绍

# 定义

在 2019 年 Gartner 关于低代码魔力象限的研究报告中对于低代码的定义

Platform that supports rapid application development, one-step deployment, execution and management using declarative, high-level programming abstractions, such as model-driven and metadata-based programming languages.

同时在这篇研究报告中,Gartner 对于低代码工具需要具备的核心能力也进行了描述:

  1. 提供一系列的应用平台能力,其中包括用于快速发布、应用管理和监控的工具体系,支持对应用逻辑和数据协议的设计,以及应用的版本管理和第三方 API 接入能力。
  2. 提供应用的快速开发能力,包括通过可视化和配置化的方式进行 UI、业务逻辑和数据的定义,支持一键发布,协助业务线人员进行应用的开发和发布。
  3. 提供面向企业级应用的能力,包括高可用、安全、权限和容灾体系,同时需要支持第三方的应用进行接入。

# 名词解释

Term Translation Definition
中后台应用 Back-office Application 企业内部用于管理和运营的后台系统。包括数据管理、业务流程管理、报表分析等功能,用于支持企业的日常运营和决策。
用户行为数据 User Behavior Data 用户在使用软件、应用程序或网站时产生的各种行为和操作的数据,包括点击、浏览、搜索、购买、评论等
埋点 Data Tracking 在应用中插入代码,用于跟踪用户行为、收集数据或记录特定事件的过程。Data tracking enables smart, data-driven decisions
CI/CD Continuous Integration & Continuous Delivery 持续交付是一种 DevOp 软件开发实践,CI/CD 管道是通过构建、测试和部署代码来驱动软件开发的过程,其目标是通过自动化过程,最大限度地减少人为错误,并保持软件发布过程的一致性。
DSL Domain-Specific Language 领域专用语言是一种针对特定类问题优化,包含更高级抽象的编程语言。在许多情况下,DSL 并不是由软件人员使用,而是由熟悉 DSL 所针对领域的非编程人员使用。WOLF中的JSON配置就是一种DSL。
事件流(流) Flow 流描述参与者和系统之间的交互。Most Low Code is Flow based programming

# 什么是WOLF

WOLF是我们自研的低代码平台,是一个面向中后台场景的前端应用开发解决方案。

WOLF项目脱胎于2018年研发的的配置化渲染引擎 Arender ,并于2019年演进为平台型产品。目前,WOLF代表一个完整的低代码生态体系,涵盖可视化、配置化页面开发,物料生产和接入,覆盖开发-测试-发布-运维完整研发链路的应用管理,以及稳定可靠的运营和技术支持团队。

TIP

截止2022年底(一年统计一次,今年正在统计),WOLF已经服务了1318位开发者,覆盖全集团200+个X1节点,支撑了1064个项目,4967个页面的交付上线。

# 目的

WOLF的建设目标,是针对公司绝大部分中后台应用重复建设、技术难度低等问题,为不同前端技能背景的开发者,提供快速构建成熟、标准化的中后台应用的能力,推动研发流程和研发资源配置的优化。

WOLF团队当前在持续进行项目的运营和迭代,目的是建设更好用,更强大的应用搭建产品,为新老用户提供优质稳定的服务,同时借深耕低代码技术探索研发侧降本增效的路径。

# WOLF能解决什么问题

从到家事业群,到整个集团,对于中后台应用系统的需求增长强劲。采用传统方式开发此类页面和应用,存在如下不足:

  1. 基于开源社区流行的中后台应用框架,灵活性不足,可维护性差;
  2. 自行开发前端应用,需要关心数据流,事件,联动,属性传递等问题,对前端技能要求高,开发效率难以提升;
  3. 应用同质化高,存在大量重复建设;
  4. 依赖前端开发资源,容易形成瓶颈。

WOLF的核心价值,是提供快速构建中后台应用/页面的能力,目标是3分钟内完成一个简单应用的交付。

针对这个核心问题,WOLF提供如下解法:

  1. 开箱即用的中后台业务组件
  2. 覆盖完整开发链路的应用管理框架
  3. 对接各类服务的插件化模块集成
  4. 支持多种页面集成场景,无缝衔接新老项目

(图:传统研发路径和WOLF交付应用的研发路径对比)

# WOLF 产品特色

通用组件

  • WOLF从组件的视角对表达能力进行封装,将页面的构建转变为使用一套预制组件库进行拼装组合。通过一个可视化拖拉拽组件的工作台,实现无代码开发。

  • WOLF提供大量开箱即用的中后台业务组件,涵盖按钮等基础组件,常用的表单控件,封装好的复杂组件等,可自由切换主题样式。

  • 对于部分典型、高频的业务形态,WOLF直接提供高度内聚的复合组件,将数据和业务逻辑封装好,例如增删改查、表单、流程表单。

模块集成

  • WOLF同时是一个应用管理平台,支持与前端应用的各类上下游系统实现对接。

  • WOLF采用模块化,插件化的方式预集成美团内部的常见系统,支持在平台中一键接入。

(图:WOLF代理请求交互流程 )

快速交付

WOLF提供规范且高效的开发流程,帮助用户快速交付应用。应用从创建到发布上线可以在3分钟内完成。

在WOLF中创建前端应用,无需关注页面托管和服务器资源,只需关注业务本身的实现。前后端应用相互独立,通过接口相通信。整个项目交付流程都在WOLF平台上闭环。

  • 开发阶段:模板系统帮助用户从大量典型场景中选择所需,一键生成页面或组件;可视化拖拉拽节省了编写代码所需的技能和时间成本。
  • 联调阶段:后端服务提供 RESTFUL 的接口,前端配置请求地址,在所见即所得的工作台中编辑和预览效果;WOLF提供请求代理、适配器、MOCK等工具帮助前后端方便灵活地连通。
  • 测试阶段:具备独立的测试环境,支持发送泳道请求。
  • 发布阶段:一键将多页面项目极速发布到线上环境,支持一键极速回滚。自动生成版本备份。
  • 访问应用:可以作为独立应用,或与老项目无缝集成——如将页面内嵌到其他项目,或定制访问域名和路径,或使用微前端容器等。

# 优点介绍

  • 提供基于可视化搭建的一站式应用孵化工具;

  • 提供丰富的组件库和模版,支持组件自定义能力,以及提供主题定制能力;

  • 建设数据源管理、OpenAPI、插件基座以提供开放的系统对接能力。

# 我的工作

Played a key role in the design and development of the Low-Code Development Platform: WOLF, a comprehensive online platform for building enterprise-level applications using low-code technology, infused with AIGC for user support.(我的简历内容,讲的比较片面)

问题背景:WOLF 需要补齐可视化搭建的缺口 随着成研业务的发展,对中后台相关的需求愈发强烈。同时随着WOLF技术方案的日渐完善,虽然现有方案可以很好地支持并缓解一部分压力,但是单纯使用WOLF还会有一定的问题,比如json配置的学习成本、理解成本较高,我们考虑是否有效率更高的方式来进行中后台前端页面的生产,于是基于WOLF的可视化方案应运而生。

# 目标

Arender 渲染器(WOLF自研的渲染器)为基础和底层核心,把繁琐的配置(json代码)映射到可视化(拖拽、点击)的界面中完成,实现全栈可视化编程:

  • 编辑时支持的点选、拖拽和配置操作
  • 编辑完成后所及即所得 WYSIWYG 的预览效果
  • 覆盖一个完整应用开发所涉及的各个技术层面(界面/数据/逻辑)

除了把json配置化->映射到可视化界面,还需要满足以下方向:

  • 简单。操作路径足够简单,在WOLF基础上进行抽象和封装,配置项所见即所得,减少学习成本,提升开发效率;

  • 赋能。为非前端专业开发者提供搭建产出中后台页面的能力;

  • 兼容。能兼容原有的json配置化代码,使用户低成本甚至零成本切入,不仅能实现可视化->JSON代码,同时也实现JSON代码->可视化的反向路径。

# 挑战

# 挑战一:PaaS (Platform as a Service)层次能力编排与扩展,提高业务服务能力

低代码的源头在于对业务的高度抽象和沉淀,在于低成本配置。可视化项目在原 DSL(Domain-Specific Language) 上进一步进行功能的编排和增强,提供更高效、友好的开发支持

我的贡献

  • 能力编排

    • 事件编排:把繁琐的事件配置变成了可以直观感受的事件流

    我们将WOLF所支持的各类事件进一步抽象,将事件抽象为不同的事件配置器,通过事件配置器可以轻松填写原本复杂的事件属性,同时加入了上下游事件链路的一键新增,可以轻松完成复合、分支事件。

  • 能力扩展

    • 表达式配置器:即时获取当前上下文数据集

      针对数据流和状态管理黑盒问题,我们设计并开发了表达式配置器,使开发者在插入自定义代码片段时可以快速获取当前上下文数据集和内置方法及变量,以提供更友好的开发支持。

    • 样式配置器:所见即所得

      我们设计并开发了样式配置器,使开发者可以通过无代码方式(点击)所见即所得的调整页面样式。

    • 适配器、拦截器管理

      我们设计并开发了适配器、拦截器管理器对代码进行解析,提供接口编排能力

  • 物料生态

    • 组件市场:开源建设

      支持用户自定义组件,提供业务或者领域组件沉淀并反哺的能力,建立开发 -> 物料沉淀 -> 可视化编辑的循环

    • GPT:辅助生成

      基于 WOLF GPT,帮助用户通过文本进行分析、JSON代码生成

# 挑战二:APaaS (Application Platform as a Service)层次能力建设,提供应用全生命周期能力

WOLF应用的全生命周期管理包括开发、上线、部署、运维、数据分析等多个部分

我的贡献

  • 持续交付
    • 环境管理

      对应用 Dev Test Staging Prod环境间的托管的版本进行协同管理,提供易于理解的 CI/CD pipeline

  • 数据运维
    • 流量大盘

      自动对用户行为数据进行埋点,统计分析并以表图进行展示,为业务决策提供快速数据支持