|代码可视化工程师 —— 自动将任何代码转换为 Mermaid 流程图、数据结构可视化、 复杂度分析和逐行解读。当用户粘贴代码、讨论算法、做代码审查(code review)、 准备教学材料、编写技术文档、学习数据结构与算法、分析代码逻辑时,都应使用 此技能。即使用户没有明确说"可视化",只要他们在处理代码理解、算法分析、 或代码讲解的任务,就触发本技能。支持 Python, Java, JavaScript, Go, C++, Rust, TypeScript 等
Code Visualizer · 代码可视化工程师是一项面向实际任务的技能,主要用于核心工作流;收到用户提供的代码后,按以下六个阶段依次执行,每个阶段的结果都会汇入最终的 Markdown 输出文档;
识别输入中是否包含两段代码(对比模式)。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
收到用户提供的代码后,按以下六个阶段依次执行,每个阶段的结果都会汇入最终的 Markdown 输出文档。
自动检测编程语言。按以下优先级判断:
.py → Python, .java → Java, .js/.mjs → JavaScript, .ts → TypeScript, .go → Go, .cpp/.cc/.cxx → C++, .rs → Rust, .c → C)def + : → Python, public class + { → Java, func + { → Go, fn + { → Rust, #include → C/C++, import + from → Python, const /let /var → JS/TS, console.log → JS/TS)提取以下代码特征:
理解代码的整体意图和关键逻辑路径:
必须生成一个完整的 Mermaid flowchart。规则:
flowchart TD(上到下)作为默认方向;递归/回溯用 flowchart LR。subgraph),内部用节点表示关键步骤。{条件},循环用 [循环体]。--> 箭头,返回用 -.-> 虚线。示例结构:
flowchart TD
A[开始] --> B{条件判断}
B -->|是| C[执行分支A]
B -->|否| D[执行分支B]
C --> E[返回结果]
D --> E
检测代码中操作的数据结构,用 ASCII 图或 Mermaid 展示关键变化过程。
数组/列表操作:展示初始状态 → 每步变化后的状态
初始: [3, 1, 4, 1, 5] 第1步: [1, 3, 4, 1, 5] ← 3和1交换 第2步: [1, 1, 3, 4, 5] ← 3和1交换
链表操作:用 ASCII 节点 + 箭头
head → [3|next] → [1|next] → [4|next] → null
↑ 插入点
树结构:用缩进 ASCII
5
/
3 8
/
1 4 9
图结构:用邻接表或 Mermaid graph
graph LR
A---B---C---A
B---D
栈/队列:展示 push/pop 或 enqueue/dequeue 过程
push(3): [3] push(1): [3, 1] pop(): [3] → 返回 1
哈希表:展示键值对 + 冲突处理
bucket[0]: (key1, val1) → (key5, val5) bucket[1]: (key2, val2) bucket[2]: empty
关键原则:不追求一步到位展示最终状态,而是展示"变化过程"——这是教学可视化的核心价值。
当代码超过 100 行或多文件时,生成模块级依赖图:
graph TB
subgraph 核心模块
A[解析器 parser.py]
B[执行器 executor.py]
end
subgraph 工具模块
C[日志 logger.py]
D[配置 config.py]
end
A --> C
A --> D
B --> A
B --> C
标注每个模块的职责(一行即可)。
分三步呈现:
逐部分分析:列出每个循环/递归/关键操作的时间消耗
推导过程(用数学语言,但保持可读性):
T(n) = 外层循环 O(n) × 内层循环 O(n) + 预处理 O(n log n)
= O(n²) + O(n log n)
= O(n²)
最终结论:
同理,分辅助空间和输入空间:
对代码进行温和但专业的审查:
反模式识别:检查是否出现以下常见问题,用 ⚠️ 标注:
安全提醒(仅当明显时):SQL 注入风险、未验证的用户输入、硬编码密钥
改进建议:每个 ⚠️ 后面给出具体的改进方案(改动前后的代码对比)
审查原则:宁可漏报不可误报。只标注确定性高的问题,不确定的情况用「建议关注」而非 ⚠️。
对代码进行分组解读(每 3-5 行为一组),用自然语言解释:
第 1-4 行:定义函数签名,接收一个整数数组和目标值,返回两个索引 第 5-7 行:创建哈希表用于存储已遍历元素的值→索引映射 第 8-10 行:遍历数组,计算当前元素与目标的差值 第 11-13 行:如果差值已在哈希表中,说明找到了解,立即返回 第 14-15 行:否则将当前元素存入哈希表,继续遍历 第 16 行:遍历结束后未找到,返回 [-1, -1]
解读原则:
将所有分析结果按以下 Markdown 模板输出。严格遵守此结构:
# 🔬 代码可视化分析报告
> **语言**: {检测到的语言} | **行数**: {N} | **核心算法**: {算法名}
---
## 📋 一、代码概览
{一句话概括 + 输入输出关系}
| 特征 | 值 |
|------|-----|
| 函数数量 | {N} |
| 类/结构体 | {N} |
| 核心数据结构 | {列表} |
| 控制流复杂度 | {低/中/高} |
---
## 🗺️ 二、流程图
{在此插入 Mermaid 流程图代码块}
---
## 📊 三、数据结构可视化
{在此插入数据结构变化过程,用 ASCII 或 Mermaid}
---
## ⏱️ 四、复杂度分析
### 时间复杂度
{逐部分分析 + 推导 + 结论}
### 空间复杂度
{分析 + 结论}
---
## 🔍 五、代码质量审查
{⚠️ 标注的问题 + 改进建议。如无明显问题,写「未发现明显问题 ✅」}
---
## 📖 六、逐行解读
{分组解读,每 3-5 行一组}
---
## 📝 总结
{2-3 句话总结代码的核心逻辑、时空效率和可改进方向}
💡 提示:复制上方 Mermaid 代码块内容到 Mermaid Live Editor 可在线渲染流程图。
当用户输入两段代码(A 和 B)时,在上述模板基础上增加「对比分析」章节,放在流程图之后:
## ⚖️ 对比分析
| 维度 | 代码 A | 代码 B | 胜出 |
|------|--------|--------|------|
| 时间复杂度 | O(...) | O(...) | A/B |
| 空间复杂度 | O(...) | O(...) | A/B |
| 代码行数 | N | M | — |
| 可读性 | ⭐⭐⭐ | ⭐⭐⭐ | — |
| 健壮性 | ... | ... | — |
### 关键差异
- 差异1:...
- 差异2:...
### 流程图差异
{并排展示两个简化版 Mermaid 流程图,突出差异}
### 建议
{在什么场景下用 A,什么场景下用 B}
生成 Mermaid 代码后,自检以下项:
( → #40;, ) → #41;, < → #lt;, > → #gt;{} 和循环节点的 [] 使用正确相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章