AI编程可视化Java项目拆解第二弹,AI辅助生成方法流程图

之前分享过一篇使用 AI 可视化 Java 项目的文章,同步在 AI 破局星球、知乎、掘金等地方都分享了。

原文在这里AI 编程:可视化 Java 项目

有很多人感兴趣,我打算写一个系列文章拆解这个项目,大家多多点赞支持~

今天分享的是第二篇:使用 AI 生成方法的 Mermaid 流程图。

第一篇:如何使用 Spoon + JavaParser 工具解析一个本地的 Java 项目。

什么是 Mermaid 流程图

Mermaid 是一个基于文本的流程图和时序图生成工具,它使用简单的文本描述语言来定义流程图和时序图的结构和关系。

Mermaid 流程图的基本语法

Mermaid 流程图的语法遵循一组简单的规则,通过同时支持多种图形和布局来描述流程和关系。

  1. 节点(Nodes):使用格式为 node [节点名称] 来定义节点,并使用 --> 或者 — 来定义节点之间的流程关系。
  2. 标题(Titles):在节点定义后,可以使用 ::: 来定义节点的标题。
  3. 子图(Subgraphs):使用 {} 将一组节点包裹起来定义一个子图。
  4. 样式(Styles):使用格式为 style [节点名称] [样式定义] 来定义节点的样式。
  5. 流程控制(Flow control):使用 => 来定义关系。

为什么用 Mermaid ?

Mermaid 可以直接使用 markdown 编辑器工具直接打开,还可以使用网页直接打开,非常适合浏览器直接使用。

推荐一个网页直接打开 Mermaid 流程图的工具:https://mermaid-js.github.io/mermaid-live-editor

官网地址:https://www.mermaidchart.com/

所以,使用 Mermaid 之后,我可以直接将一串字符串转换成浏览器可以直接打开的流程图。

对于用户来说,直接浏览器点点点,就可以熟悉一个 Java 项目了。

AI 怎么画流程图?

我们拿到需要画流程图的方法源代码之后,我们直接问 GPT 就可以生成 Mermaid 流程图文字。

提示词:

你是一名Java专家,对代码有丰富的经验,现在要对代码流程进行梳理,要求如下:

  • 流程图中的描述信息必须是自然语言形式,具备业务语义,避免技术性描述,避免直接使用变量名
  • 忽略掉简单的函数,如日志、监控等业务无关的函数
  • 禁止逐行翻译代码,需要有合适的聚合与省略
  • 出现循环逻辑时,循环开始时使用"{循环}",结束时使用’{循环结束}'节点
  • 第一个节点一定是"开始",最后一个节点一定是"结束"
  • 每个 Mermaid 中节点的描述必须遵循"[业务描述:关键代码]"格式。
    禁止 Mermaid 图中一行只有单独的节点(如:F[判断条件]),预期是每行必须有指向(如:E --> F[判断条件])
  • 节点描述中禁止包含源码变量
    示例:
    要分析的代码:
    public CommonResult query(String outTradeNo, String tradeNo){
    return CommonResult.success(alipayService.query(outTradeNo,tradeNo));
    }
    Mermaid流程图:
    graph LR
    graph LR
    A[开始] --> B[调用支付宝查询服务]
    B --> C[构造查询结果]
    C --> D[返回查询结果]
    D --> E[结束]
    要梳理的源代码:
    @ApiOperation(value = “支付宝异步回调”,notes = “必须为POST请求,执行成功返回success,执行失败返回failure”)
    @RequestMapping(value = “/notify”, method = RequestMethod.POST)
    public String notify(HttpServletRequest request){
    Map params = new HashMap<>();
    Map requestParams = request.getParameterMap();
    for (String name : requestParams.keySet()) {
    params.put(name, request.getParameter(name));
    }
    return alipayService.notify(params);
    }

这段代码是 GitHub 上有名的开源软件上的一段代码,根据这个提示词,使用 GPT-3.5 就可以获取相关的流程图。

我们发现,只需要有合适的提示词,再加上方法的源代码,就可以给方法生成流程图。

但是,我们发现只包含当前方法体中的代码生成的流程图,并不能很好的理解这个方法具体在干什么。

对于开发同学来说,不需要阅读源代码能够快速了解这个方法在干什么是非常重要的,能够大大降低新入职同学的熟悉成本。

怎么解决这个问题?我们可以通过递归的方式,继续生成子方法的流程图,比如这里alipayService.notify(params)这个方法,在当前流程中就是 执行异步回调处理

我们可以针对这个方法 alipayService.notify(params) 继续生成流程图,前端 UI 对流程图做一些优化,可以展开这个流程,展示这个方法的流程。就能完美解决这个问题。

对于需要了解详细流程的同学,直接根据最上层,比如 Controller 层流程图,一路点点点,就可以了解到自己所需要的内容。

到这里,我们今天的内容就结束啦。

下一篇,我们分享如何生成项目入口地图,请期待~

微信搜索同名公众号关注我,不迷路~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/626814.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙开发-UI-布局-层叠布局

鸿蒙开发-UI-布局 鸿蒙开发-UI-布局-线性布局 文章目录 前言 一、基本概念 二、对齐方式 三、Z序控制 四、使用场景 总结 前言 上文详细学习了线性布局&#xff0c;学习了线性容器内子元素在主轴以及交叉轴上的排列方式&#xff0c;子元素自适应相关的知识点&#xff0c;本文继…

旧路由重置新路由设置新路由设置教程|适用于自动获取IP模式

前言 如果你的光猫是直接拨号&#xff08;路由模式&#xff09;的&#xff0c;就可以按照本教程进行路由重置或者更换新路由器。 本文章适合电脑小白&#xff0c;请注意每一步哦&#xff01; 注意事项 开始之前需要确认光猫是桥接模式还是路由模式。如果光猫是路由模式&…

揭秘高生产力设计工具!15款原型设计软件推荐大公开!

1、Proto.io Proto.io是一个特殊的手机原型开发平台——可以构建和部署全交互式移动程序的原型&#xff0c;并可以模拟类似的成品。它可以在大多数浏览器中运行&#xff0c;并提供三个重要的界面&#xff1a;dashboard、编辑器和播放器。 dashboard可以用来管理项目。编辑器是…

第二证券:利空因素影响成本端 豆粕期现价偏弱运行

上个买卖周&#xff0c;受利空要素影响&#xff0c;内盘豆粕期价刷新2021年12月14日以来收盘价新低。到上周五收盘&#xff0c;豆粕主力合约MO2405最低下探至3075元/吨&#xff0c;收报3078元/吨&#xff0c;周内累计跌幅近4%。业内人士以为&#xff0c;美国农业部超预期调高20…

恐龙岛如何正确的选择服务器

恐龙岛服务器的价格因配置和运营模式等因素而异。一般来说&#xff0c;BGP线路成本更高但更稳定&#xff0c;适用于全球分布广泛的玩家&#xff0c;适合高品质画面游戏。在选择合适的配置时&#xff0c;需要考虑运营模式、游戏玩家地区分布和游戏特性等因素。具体价格需要参考具…

外汇天眼:做交易要不要预测行情? 趋势交易最重要的三个核心概念!

对一个&#xff08;量化&#xff09;技术分析派来说&#xff0c;趋势是非常重要的&#xff0c;大家一般的想法都是通过趋势跟踪来挣钱的&#xff0c;无趋势时会有小的损耗&#xff0c;趋势来时用仓位来弥补损失并盈利&#xff0c;用盈亏比而不用胜率。 就趋势交易最重要的三个…

3D scanner with DLPC3478

https://www.bilibili.com/video/BV1vJ411J7ih?p3&vd_source109fb20ee1f39e5212cd7a443a0286c5 因数&#xff1a; 分别率波长pattern速度 DMD 与 DLPC匹配 3D scanner是结构光的概念走的 Internal pattern, 是DLPC内部提供图像给DMD External Pattern, 外部FPGA /MCU…

Spring基于AOP(面向切面编程)开发

概述 AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程&#xff0c;通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续&#xff0c;是软件开发中的一个热点&#xff0c;也是Spring框架中的一个重要内容&…

鸿蒙开发之手势Pan

Entry Component struct OfficialPanGesturePage {State message: string 默认只左右移动State offsetX: number 0State offsetY: number 0State positionX: number 0State positionY: number 0//默认pan的参数&#xff0c;1根手指&#xff0c;左右方向private panOption:…

Audio Precision SYS-2722音频分析仪

181/2461/8938产品概述&#xff1a; 2700系列专为需要最高性能的音频工程师而设计&#xff0c; 最低的失真和最大的灵活性。 2722的真正双域架构实现了以下方面的无与伦比的测量 模拟和数字信号:模拟发生器和分析仪性能超过 任何基于数字转换器的设计&#xff0c;而数字分析技…

三、基础篇 vue Class与Style绑定

操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是 attribute&#xff0c;所以我们可以用 v-bind 处理它们&#xff1a;只需要通过表达式计算出字符串结果即可。不过&#xff0c;字符串拼接麻烦且易错。因此&#xff0c;在将 v-bind 用于 class 和 style…

【面试突击】计算级网络面试实战(上)

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

2024年美赛美国大学生数学建模竞赛ABCDEF题思路资料汇总贴

下文包含&#xff1a;2024年美国大学生数学建模竞赛&#xff08;美赛&#xff09;A- F题思路解析、选题建议、代码可视化及如何准备数学建模竞赛&#xff08;2号发&#xff09; C君将会第一时间发布选题建议、所有题目的思路解析、相关代码、参考文献、参考论文等多项资料&…

Linux:为什么要打包和压缩?

我们在Linux中已经学习了zip/unzip和tar两种方式来打包压缩文件&#xff0c;那么为什么要打包和压缩呢&#xff1f; 最直接的目的就是为了便于网络传输&#xff0c;防止传输过程中的数据丢失 举例实践 我们做个示例演示一下 我们创建一百个文件 我们将文件都放到dir里面来&…

UDP传输总丢包?常用的解决方式在这里!

UDP是一种无连接的协议&#xff0c;传输数据时不建立连接&#xff0c;因此可能导致数据包丢失。UDP丢包是指在传输过程中由于各种原因导致数据包未能到达目的地。UDP丢包会影响传输的质量和效率&#xff0c;导致数据损失、延迟&#xff0c;甚至导致传输失败。本文将分析UDP丢包…

上门按摩APP系统公众号H5搭建能为客户带来哪些便捷。

大家好&#xff01;今天我来给大家介绍一下上门按摩系统H5搭建。你有没有曾经因为工作疲劳、肌肉酸痛而感到身体不适&#xff1f;或者是因为长时间坐在电脑前&#xff0c;感觉脖子和肩膀快要僵硬了&#xff1f;如果你有这样的困扰&#xff0c;那么上门按摩系统公众号绝对是你的…

高光谱分类论文解读分享之基于多模态融合Transformer的遥感图像分类方法

IEEE TGRS 2023&#xff1a;基于多模态融合Transformer的遥感图像分类方法 题目 Multimodal Fusion Transformer for Remote Sensing Image Classification 作者 Swalpa Kumar Roy , Student Member, IEEE, Ankur Deria , Danfeng Hong , Senior Member, IEEE, Behnood Ras…

Hive 数据迁移

一、需求 同步集团的数据到断直连环境。 二、思路 三、同步数据&#xff08;方案&#xff09; 1、环境&#xff1a;断直连模拟环境 2、操作机器&#xff1a;ETL 机器 XX.14.36.216 3、工作路径&#xff1a;cd /usr/local/fqlhadoop/hadoop/bin 4、执行命令&#xff1a; 命令…

文心一言 vs. ChatGPT:哪个更胜一筹?

文心一言 vs. ChatGPT&#xff1a;从简洁美到深度思考的文本生成之旅 近年来&#xff0c;文本生成工具的崛起使得人们在表达和沟通方面拥有了更多的选择。在这个领域中&#xff0c;文心一言和ChatGPT作为两个备受瞩目的工具&#xff0c;各自以独特的优势展现在用户面前。本文将…

网络设备自动巡检脚本

简介 工作中经常需要对客户的网络设备进行巡检&#xff0c;之前都是用SecureCRT开启记录Log Session&#xff0c;依次远程登录到每个设备上&#xff0c;依次输入巡检命令收集设备巡检信息&#xff1b; 现在希望利用Python能够实现自动登录设备&#xff0c;自动抓取巡检信息&am…