Skip to content
导航栏

Yao 简单介绍

Yao 是什么?

YAO 是一款开源应用引擎,使用 Golang 编写,仅一个命令行工具,下载即用。适合用于开发业务系统、网站/APP API 接口、管理后台、自建低代码平台等。

YAO 使用的开发语言为 golang/react/javascript。

开发理念:

  • 元数据编程。通过模型配置文件来驱动数据库配置与界面配置。
  • AI。2023 人工智能大爆发,使用人工智能解析自然语言,生成代码,已成为现实,人人都能编程。
  • 后端配置驱动 UI,平台提供前端框架,界面配置在后端编写。配置文件使用的格式是 json,后面会支持 jsonc。jsonc 可以在 json 文件中写注释。
  • 零代码编程。定义好模型文件后,框架会生成一系列的默认配置,开箱即用。
  • 编程编排。引擎平台把各个组件功能封装成一个个的“处理器”,处理器之间没有代码级别的耦合,可使用配置文件串联组合不同的功能,非常的灵活。
  • 无限扩展。无论是前端 Xgen 还是后端 Yao,都提供了对外的扩展性,可以使用插件各种个化化的需求。

使用这个平台的主要开发工作:

  • 编写 DSL 配置文件,常用的功能只需要写好配置文件即可。
  • 开发 JS 脚本,使用 js 可增强数据操作能力,Yao 引擎预留了所有的数据处理出口。
  • 开发 GO 插件,特殊的需求可使用插件来完成。
  • 代码生成。平台引擎中提供了 Studio 命令/接口,可动态的生成配置文件。
  • 查文档,看源代码,找处理器接口定义。

优势

  • golang 开发的程序布署非常方便,性能也非常好。
  • react 开发的前端功能丰富,可以满足大部分的需求。
  • 开箱即用,对于标准的后台 CURD 功能,只需要极少的配置即可让系统跑起来。

后端模块:

Yao 主要功能有:

  • 提供 API 网关的功能,可当 rest api 网关,支持当 web socket 服务器。
  • 自带用户登录验证功能,可自定义。
  • 给前端框架 Xgen 提供 Api 支持。
  • 自带数据操作 API 接口,有现成的对表的增删除改 API 接口。
  • 文件上传下载接口。

Gou 主要功能:

  • 流程编排处理器。
  • js v8 引擎解析运行。
  • 数据库操作封装。
  • 后台定期执行任务。
  • grpc 插件封装。

Xun 主要功能:

  • 封装数据库访问
  • 可适用不同的数据库。

Kun 主要功能:

  • 一些实用的数据处理工具

依赖:

前端框架:

Xgen 封装了管理后台 CURD 场景所需要的大部分控件,在后端写好配置文件后,前端就能进行数据增删改查。Xgen 还提供了远程组件的功能,预留了框架扩展的能力。

Xgen 框架 UI 组件主要是使用 Ant Design:

版本变更历史:

注意:各个版本变化比较大,特别是与 xgen 的相关的配置不同版本之间不兼容,下载别人的 Yao 项目需要使用特定的版本的 yao 程序。

  • Yao 0.10.3 开发版
  • Yao 0.10.3 预发布
  • Yao 0.10.2 正式版
  • Yao 0.10.1 正式版
  • Yao 0.9.1 正式版

小缺点:

  • 由于过于灵活,在开发应用时,无法使用编辑器智能检查处理器的参数类型。需要大量的查阅文档与源代码。
  • 平台使用 js 引擎 v8。功能是足够的强,但是在开发时缺少开发工具支撑,调试会比较痛苦。
  • 配置文件使用 json 格式。无法校验类型格式,容易出错,上手比较难。

为了解决这些麻烦事,本人作了一些尝试:

  • js 配置文件使用 json-schema 进行校验。YAO 应用 JSON-SCHEMA
  • js 脚本的调试使用 nodejs 作些处理后也可以直接在 vscode 里进行调试,虽然配置有点麻烦,但是使用却是非常的方便。YAO 应用调试器