基础设施 :启动低代码平台研发之前,你需要有什么家底?

开发 前端
国内低代码平台如阿里宜搭、字节跳动 OpenCode 和华为 DevRun 的组件实践为我们提供了宝贵的经验。希望通过本文的分析和示例代码,能帮助你更好地构筑低代码平台的核心基础设施。​

今天,我们来聊一聊在启动低代码平台研发之前,必须准备好的基础设施。低代码平台以其快速构建应用的优势,正在被越来越多的企业采用。但在着手开发低代码平台之前,你需要确保一些核心的“家底”已经打牢,尤其是Web 组件集。作为低代码平台的基石,组件集的质量和能力几乎决定了平台的成败。

本文将以组件集为核心,结合源码片段和国内低代码平台的案例,帮助你从理论到实践全面掌握这一重要主题。

一、为什么选择 B/S 架构?

过去几年中,Web 技术得到了快速发展,使浏览器能够承载复杂的 Web 应用。低代码平台选择 B/S 架构几乎是毋庸置疑的:

  • 优势一:跨平台支持 B/S 架构只需一个浏览器即可运行,无需安装客户端,无论是 PC 端还是移动端都能很好支持。
  • 优势二:开发生态成熟 前端框架如 React、Vue、Angular,以及 CSS 框架如 Tailwind、Ant Design 已经非常完善,构建低代码平台有充足的技术储备。
  • 优势三:可视化开发更便捷 可视化开发工具天然适合基于 Web 技术实现,利用现代浏览器的渲染能力和调试工具,可以快速搭建功能丰富的可视化编辑器。

二、组件集在低代码平台中的作用

Web 组件集在低代码平台中的作用主要体现在以下三个环节:

  1. 构建低代码编辑器自身 编辑器的画布、工具栏、属性面板等核心功能都依赖于组件集。
  2. 构建开发能力 开发者通过组件集扩展平台能力,如自定义组件和模板。
  3. 构建业务应用 业务应用由组件组合而成,组件的可复用性和丰富程度直接影响业务开发的效率和效果。

三、优秀组件集的特性

在启动低代码平台之前,你需要评估现有组件集是否满足需求。以下是优秀组件集应具备的特性:

3.1 丰富的组件种类

  • 基础组件:按钮、表单、表格、树形控件等常见组件。
  • 高级组件:图表、流程图、图像编辑器等复杂功能组件。

例如:Ant Design 提供了丰富的基础组件,支持 React 和 Vue,适合快速开发高质量的 Web 应用。

3.2 高度可定制化

组件集应支持外观和行为的高度定制,以便开发者根据业务需求快速调整。例如:

  • 主题定制:通过配置主题或动态切换样式。
  • 行为扩展:支持事件钩子和自定义逻辑的注入。

以下是一个基于 Ant Design 的主题定制示例:

import { ConfigProvider } from 'antd';
import zhCN from 'antd/lib/locale/zh_CN';

const theme = {
  token: {
    colorPrimary: '#1890ff',
    borderRadiusBase: '4px',
  },
};

const App = () => (
  <ConfigProvider theme={theme} locale={zhCN}>
    <YourApp />
  </ConfigProvider>
);

注释:通过 ConfigProvider 配置主题和国际化,让组件的外观和语言动态切换。

3.3 性能优化

  • 虚拟列表:对于大数据量的列表或表格,组件集应内置虚拟滚动功能。
  • 按需加载:支持 Tree Shaking 和组件按需加载,避免加载不必要的资源。

以下是实现按需加载的示例:

import { Button } from 'antd';
// 使用 antd 的 babel-plugin-import 插件
// 自动按需加载组件和样式

3.4 强大的扩展能力

组件集需要支持扩展,例如增加新的 UI 控件或自定义行为。以下是 React 中扩展组件的一个示例:

import React from 'react';
import { Button } from 'antd';

const CustomButton = (props) => {
  const handleClick = () => {
    alert('自定义点击逻辑');
    props.onClick && props.onClick();
  };

  return <Button {...props} onClick={handleClick} />;
};

export default CustomButton;

注释:通过封装 Ant Design 的 Button,扩展自定义逻辑,同时保留原有功能。

四、国内低代码平台的组件实践

国内涌现了许多优秀的低代码平台,它们在组件集上各有特色。以下是几个案例:

4.1 阿里巴巴的宜搭(Yida)

  • 特点:基于 Ant Design 构建,提供高度集成的可视化编辑器。
  • 组件实践:宜搭的表单控件非常强大,支持拖拽式布局和动态校验。

示例:拖拽生成的表单代码可能类似如下:

{
  "type": "form",
  "fields": [
    {
      "type": "input",
      "label": "姓名",
      "key": "name",
      "props": {
        "placeholder": "请输入姓名",
        "required": true
      }
    },
    {
      "type": "datePicker",
      "label": "生日",
      "key": "birthday",
      "props": {
        "placeholder": "请选择日期"
      }
    }
  ]
}

注释:这是低代码平台常用的 JSON 配置,通过解析动态生成表单。

4.2 字节跳动的 OpenCode

  • 特点:专注于前端低代码开发,组件库支持复杂的交互逻辑。
  • 组件实践:其画布组件支持拖拽和多选,极大提升了用户体验。

以下是拖拽组件的简单实现:

import { useState } from 'react';

const DraggableComponent = () => {
  const [position, setPosition] = useState({ x: 0, y: 0 });

  const handleDrag = (e) => {
    setPosition({ x: e.clientX, y: e.clientY });
  };

  return (
    <div
      style={{
        position: 'absolute',
        left: position.x,
        top: position.y,
        width: '100px',
        height: '100px',
        backgroundColor: 'lightblue',
        cursor: 'move',
      }}
      onMouseMove={handleDrag}
    >
      拖拽我
    </div>
  );
};

注释:通过监听鼠标事件,实现一个简单的拖拽功能。

4.3 华为的 DevRun

  • 特点:提供强大的企业级组件集,支持高并发和多租户场景。
  • 组件实践:其图表组件采用 ECharts,支持复杂的数据可视化。

示例:基于 ECharts 的折线图配置:

const option = {
  title: {
    text: '折线图示例',
  },
  tooltip: {},
  xAxis: {
    data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
  },
  yAxis: {},
  series: [
    {
      name: '销量',
      type: 'line',
      data: [5, 20, 36, 10, 10, 20],
    },
  ],
};

五、总结

打造一个低代码平台需要强大的基础设施,而组件集是其中的核心部分。在研发之前,你需要确保拥有以下“家底”:

  1. 丰富的组件种类;
  2. 高度可定制化能力;
  3. 强大的性能优化;
  4. 扩展性强的设计。

国内低代码平台如阿里宜搭、字节跳动 OpenCode 和华为 DevRun 的组件实践为我们提供了宝贵的经验。希望通过本文的分析和示例代码,能帮助你更好地构筑低代码平台的核心基础设施。

责任编辑:武晓燕 来源: 架构师秋天
相关推荐

2021-11-02 13:38:39

数据中心数据中心架构数据中心网络

2022-01-10 08:00:00

云原生云计算技术

2015-09-29 09:48:28

基础设施反思资源交付

2021-11-11 15:17:36

人工智能IT技术

2017-09-16 17:28:55

基础设施代码持续交付

2022-06-08 09:58:31

数据中心基础设施管理DCIM数据中心

2021-07-26 09:53:58

IaC基础设施即代码云数据中心

2018-12-17 13:00:19

2015-09-15 16:05:06

IT基础设施

2022-02-10 11:54:34

即时基础设施基础设施数字化转型

2020-02-24 11:08:27

云计算网络攻击数据

2010-11-10 10:50:06

2009-12-22 13:59:59

惠普基础设施运营

2009-12-18 17:14:25

惠普基础架构

2022-02-23 12:21:09

自动化云计算基础设施

2023-07-17 18:43:26

测试基础设施开发

2015-07-13 10:01:51

超融合基础设施数据中心

2011-03-22 09:36:27

融合基础架构私有云

2012-10-15 19:02:45

下一代网络智能芯片

2013-10-28 14:35:34

惠普OverView基础设施管理
点赞
收藏

51CTO技术栈公众号