最近在学习低代码引擎,发现不少好玩的项目。但大多和前端组件绑定,通过拖拽的方式生成前端页面,更适合搭建管理后台。
作为一个后端码农,我更喜欢灵活性、扩展性强,可以专注api开发的低代码引擎。
最初接触的是 Yao,很容易就被它独特的设计吸引了:
- 基于go实现,单机tps能达到10w+
- 基于json配置可以完成大部分工作,包括:数据库、缓存、api、图表、工作流等
- 支持javascript调用各种处理器,实现复杂逻辑
了解完特性后,就是找个项目 [萤火商城] 山寨一下,看下开发体验如何
山寨前期体验还是比较愉悦的,但逐渐的会发现Yao越来越多不爽的地方:
- 项目较为小众,文档更新脱节,很多特性都是通过阅读源码了解到
- js是通过v8go调用,只适合小块的代码处理,不支持require,也就无法重用nodejs海量的扩展库
- 缺乏可视化工具支持,json编写工作繁琐
- 不能支持复杂的流程编排
- 官方没有提供应用市场,方便社区共享成果
直到上传图片到七牛云oss的时候,需要自己编写go插件、编译、部署,开发体验一下回到解放前,甚至有所不如……果断弃坑,等半年后回头再看
然后继续逛github时发现了[node-red],一款基于流的低代码引擎,了解了下特性,正好完美解决了Yao的几个痛点
- IBM开源,广泛用于iot和智能家居,比如用于实现Home Assistant的流程自动化
- 基于node实现,可以重用社区的海量扩展库
- 提供可视化编排界面,轻松实现复杂流程编排
- 有官方应用市场,有社区共享的数千个node和flow,可以覆盖大部分常见需求
二话不说,经过简单的学习后,继续山寨。
为了验证node-red的灵活性,前端直接使用的 [萤火商城V2.0-store端],不做任何修改。
数据库结构直接使用了 [萤火商城] 的数据库,不做任何修改
后端接口的路由规则、入参、出参保持和[萤火商城]一致,不做任何修改。
找了几个典型的功能进行验证:
- 登录+鉴权(基于jwt)
- 商品分类(树)
- 文件上传七牛云存储
- 商品的分页查询(多表关联查询)
- 商品的新增和修改(多表操作+事务支持)
整个开发过程相对还是比较顺畅的,有一些不爽的地方绕一下也可以解决
demo上传了 [nodered-mall],顺便记录下node-red的学习过程
先放几张效果图
image.png
image.png
image.png
image.png
image.png