借助AI,我3天开发了一款可视化工作流编辑器

1,307 阅读4分钟

AI着实让人发狂!最近借助AI,我花了不到3天的时间,写了一款原生js实现的工作流编辑器,先上图:图片注意哦,这里是用原生js实现的,也就意味着我们可以轻松将它封装成Vue和React组件,在项目里使用。先总结一下实现这款可视化编辑器,AI的占比:

  • UI界面,80% AI生成
  • 功能逻辑实现,60% AI生成
  • bug和问题修复,60% AI实现
  • 架构和插件设计方案,50% AI实现

也就是说,但凡是懂点技术的人员,都可以借助AI,实现这个可视化流程编辑器需求的50% - 60%。这款可视化流程图,如果不借助AI实现,不借助VUE,REACT等框架,如果纯js生态来写,对于初中级研发来说简直就是灾难。功能详解图片接下来和大家介绍一下这款借助AI实现的工作流编辑器的功能模块。

2.1 节点管理

  • 多种节点类型支持开始、输入、代码、条件、循环等多种节点类型
  • 节点分类将节点按功能分为基础节点、处理节点、流程控制和集成节点
  • 节点搜索支持通过关键词搜索节点
  • 可视化图标每种节点类型配有独特的图标和颜色

2.2 画布操作

  • 拖拽创建从左侧面板拖拽节点到画布创建新节点
  • 节点移动画布中的节点可自由拖动位置
  • 连线创建通过端点连接不同节点
  • 连线样式支持多种连线样式(贝塞尔曲线、直线、流程图、状态机)
  • 缩放控制支持画布的放大、缩小和重置
  • 网格背景可配置的网格背景,支持调整网格大小和颜色
  • 缩略图右下角实时显示画布缩略图,支持点击导航

2.3 属性配置

  • 节点属性配置节点名称、描述、代码等基本属性
  • 节点样式支持多种预设样式(默认、现代、扁平、圆角)
  • 高级设置超时设置、重试机制、优先级、标签等
  • 连接线属性配置连接线标签、颜色、线宽和样式

2.4 导出功能

  • JSON 导出将工作流导出为 JSON 文件
  • 元数据管理配置工作流名称、描述、版本和权限

更让我惊讶的是,AI竟然连节点和边的属性面板都自动帮我实现了,我们还能轻松设置边的样式,比如:

  • 贝塞尔曲线
  • 直线
  • 流程图
  • 状态机

具体demo如下:图片

同时还帮我实现了缩略图的功能:

图片

虽然实现的有点粗糙,但是作为有技术在身的程序员,优化它简直是分分钟的事情。技术实现先和大家分享一下我设计的这款流程图编辑器的技术架构:

图片

技术栈我采用了如下方案:

前端框架:纯 HTML5 + CSS3 + JavaScript (ES6+)
DOM 操作:原生 JavaScript
连线库:jsPlumb (v2.15.6)
样式管理:CSS3 自定义样式
图标:内联 SVG

数据结构分为节点和边的数据结构,下面是节点的数据结构:

image.png

接下来的是边的数据结构:

image.png

最后一个是整个流程图的数据结构:

image.png

数据结构部分也都是AI来实现的,我们只需要来纠错即可。整个原生流程图编辑器采用的是js插件的方式实现,所以我们可以低成本集成到vue和react项目中。AI编程的一些总结其实用AI实现这款编辑器整个过程还是挺顺利的,从效率上对研发人员简直是“大杀器”。接下来我总结几个客观的缺点和事实:

  • 对于业务复杂度高的场景,比如复杂界面的多端适配,AI实现的还不是很友好,需要人为来限定详细的规则,AI才能理解并实现
  • 不同的AI编程工具对语言的熟悉度有差异,所以在使用AI编程工具时,一定要结合自身的技术需求,来选择合适的编程工具和模型
  • AI来生成大型工程时,缺乏“长记忆性”,所以不能把每一个功能细节都帮你实现,80%的AI编程功能更多的还是在UI和交互上来解决效率问题
  • 你的提示词对AI生成的结果至关重要,但是不能给AI太详细的提示词和限制,不然AI生成的效果反而比只用少量提示词生成的效果好
  • 现阶段,AI解决复杂业务问题的前提还是你得有比较扎实和深入的技术能力,否则AI只能帮你实现基础的场景

如果你对这款流程图实现感兴趣,欢迎在趣谈AI公众号留言反馈。