一、Tango 简介
Tango 是一个用于疾速构建低代码平台的低代码设计器框架,借助 Tango 只须要数行代码就能够实现一个根本的低代码平台前端零碎的搭建。Tango 低代码设计器间接读取前端我的项目的源代码,并以源代码为核心,执行和渲染前端视图,并为用户提供低代码可视化搭建能力,用户的搭建操作会转为对代码的批改。借助 Tango 能够实现 源码进,源码出的成果,无缝与企业外部现有的研发体系进行集成。
如上图所示,Tango 低代码引擎反对可视化视图与源码双向同步,双向互转,为开发者提供 LowCode+ ProCode 无缝连接的开发体验。
1.1 外围个性
以下是 Tango 提供的一些外围个性:
- 经验网易云音乐内网生产环境的理论测验,可灵便集成利用于低代码平台,本地开发工具等
- 基于源码 AST 驱动,自私有 DSL 和协定
- 提供实时出码能力,反对源码进,源码出
- 开箱即用的前端低代码设计器,提供灵便易用的设计器 React 组件
- 应用 TypeScript 开发,提供残缺的类型定义文件
1.2 架构概览
- Tango 低代码引擎在实现上进行了分层解藕,使得下层的低代码平台与底层的低代码引擎能够独立开发和保护,疾速集成部署。另一方面,Tango 低代码引擎定义了一套凋谢的物料生态体系,开发者能够自在的奉献扩大组件配置能力的属性设置器,以及扩大低代码物料的二方三方业务组件。
整体架构如下图所示。
1.3 引擎设计器概览
Tango 低代码引擎设计器用于低成本初始化一个根本的低代码平台,其前端局部次要包含如下几个局部:
- 设计器主框架:进行外框架初始化,状态治理,拖拽引擎绑定等外围逻辑。
- 侧边栏面板:提供可扩大的侧边面板,除了内置通用的面板,用户还能够任意增加自定义的面板。
- 属性设置面板:属性设置器面板,反对用户进行属性配置。
- 运行时沙箱:用于设计器运行时视图的渲染。
- Web IDE:用于进行在线源代码编辑。
1.4 基于源码的低代码搭建计划
Tango 低代码引擎不依赖公有搭建协定和 DSL,而是间接应用源代码驱动,引擎外部将源码转为 AST,用户的所有的搭建操作转为对 AST 的遍历和批改,进而将 AST 从新生成为代码,将代码同步给在线沙箱执行。与传统的借助 Schema 驱动的低代码计划 相比,不受到公有 DSL 和协定的限度,可能完满的实现低代码搭建与源码开发的无缝集成。
并且,与基于公有 Schema 的低代码搭建计划相比,Tango 低代码引擎具备如下劣势:
比照项 | 基于 Schema 的低代码搭建计划 | Tango(基于源码 AST 转换) |
---|---|---|
实用场景 | 面向特定的垂直搭建场景,例如表单,营销页面等 | 面面向以源码为核心的利用搭建场景 |
语言能力 | 依赖公有协定扩大,不灵便,且难以与编程语言能力对齐 | 间接基于 JavaScript 语言,能够应用所有的语言个性,不存在扩展性问题 |
开发能力 | LowCode | LowCode + ProCode |
源码导出 | 以 Schema 为核心,单向出码,不可逆 | 以源码为核心,双向转码 |
自定义依赖 | 须要依据公有协定扩大封装,定制老本高 | 原有组件能够无缝低成本接入 |
集成研发设施 | 定制老本高,须要额定定制 | 低成本接入,能够间接复用原有的部署公布能力 |
1.5 源码进,源码出
因为引擎内核齐全基于源代码驱动实现,Tango 低代码引擎可能实现源代码进,源代码出的可视化搭建能力,不提供任何公有的两头产物。从而使得,Tango 构建的线上研发能力能够与团队现有的研发服务(代码托管、构建、部署、CDN)无缝连接与集成。
二、疾速上手
2.1 环境筹备
Tango 是一个用于疾速构建低代码工具的前端框架。借助 Tango 只须要大量代码就能够疾速的搭建一个根本的低代码设计器。本文将会帮忙你借助 Tango 实现一个根本的低代码可视化设计器。
在正式开始之前,咱们须要确保曾经装置了相干的软件环境:
- 装置 node 16.0.0 以上版本: https://nodejs.org/en/download/
- 装置 npm 8.x 或 yarn 1.x: https://classic.yarnpkg.com/en/docs/getting-started
2.2 启动 Tango Playground
首先,将 Tango 仓库的代码克隆至本地。
git clone https://github.com/NetEase/tango.git
而后,在计算机的在 hosts 文件下增加本地开发的域名。
127.0.0.1 local.netease.com
接着,装置依赖并启动 Tango Playground。
yarn install
yarn start
最初,关上浏览器拜访 https://local.netease.com:6006 并容许不平安的证书。
2.3 启动本地沙箱
关上浏览器拜访 本地开发除了须要启动 Tango 的 playground 外,还须要一个可用的沙箱环境来承载设计器。
如果没有可用的在线沙箱,能够通过本地启动一个沙箱来实现开发;如果已有一个在线沙箱,且沙箱与本地的 playground 共用一级域名,请间接跳至第 7 步批改 bundlerURL 为在线沙箱的地址,并容许不平安的证书.
首先,克隆仓库至本地:
git clone https://github.com/NetEase/codesandbox-client.git
而后,关上 Caddyfile 文件,将外面 :8080 批改为 playground 的域名,例如 local.netease.com。而后,将上述域名增加至 hosts 文件。
127.0.0.1 local.netease.com
接着,装置依赖并构建沙箱产物。
yarn install
yarn build:deps
yarn build:sandpack
应用 Caddy 托管构建沙箱后的动态文件,若本地没有 Caddy 可返回 https://caddyserver.com/download 下载。
caddy run
关上浏览器拜访 https://local.netease.com:8443 并容许不平安的证书。批改 apps/pl…。
<Sandbox bundlerURL="https://local.netease.com:8443" />
回到 playground 页面并刷新,当初 playground 将应用你指定的沙箱来运行设计器。
如果你本地有 Docker 也可将上述的第 4-5 步改为应用 Docker 构建镜像并启动:
docker build -t tango-codesandbox .
docker run -p 8443:8443 tango-codesandbox
三、社区建设
基于 Tango 低代码引擎的低代码平台曾经在网易云音乐外部服务了外部泛滥业务开发场景。因为开源工作波及到大量的代码拆散工作,以后开源版本为低代码引擎的 alpha 演示版本,API 可能不稳固,不倡议在生产环境中应用。咱们预计在 2023 年 Q4 公布能够运行在生产环境的正式版。
咱们的开源工作正在踊跃推动中,能够通过如下的信息理解到咱们的最新进展:
Github 仓库:https://github.com/NetEase/tango/br
文档站点:https://netease.github.io/tango/
欢送大家退出到咱们的社区中来,一起参加到 Tango 低代码引擎的开源建设中来。有任何问题都能够通过 Github Issues 反馈给咱们,咱们会及时跟进解决。