一个全面的 OpenClaw 技能,通过互动教学、代码审查、调试指导和动手实践来学习编程。
analyze_code.py:针对错误、风格、复杂度、安全性进行静态代码分析run_tests.py:以格式化输出执行测试(pytest、unittest、jest)complexity_analyzer.py:使用大 O 表示法分析时间/空间复杂度# 用于脚本功能(可选)
pip install -r requirements.txt
该技能无需脚本即可完美运行——它们是可选的增强功能!
激活该技能并告诉它:
示例:
"我是初学者,教我 Python 基础知识"
"帮我调试这段代码" [粘贴代码]
"给我一个中等难度的算法问题"
"审查我的实现" [附加文件]
"我想构建一个 REST API"
"教我递归"
"解释 JavaScript 中闭包的工作原理"
"什么是动态规划?"
"审查我的代码" [粘贴或附加文件]
"如何改进这个函数?"
"这遵循了最佳实践吗?"
"帮我调试这个错误"
"我的函数返回了 None 而不是总和"
"为什么这个循环不工作?"
导师会通过提问引导你,帮助你自己发现错误!
"给我一个简单的算法问题"
"练习链表"
"LeetCode 风格的中等难度问题"
"帮我设计一个任务管理 API"
"我正在构建一个博客,从哪里开始?"
"我应该使用什么技术栈?"
"教我单例模式"
"什么时候应该使用工厂模式?"
"展示观察者模式的实际应用"
"模拟技术面试"
"系统设计:设计 Twitter"
"练习数组和字符串"
"我懂 Python,教我 JavaScript"
"如何在 Rust 中做 X?"
"比较 Python 和 Java"
分析代码中的错误、风格违规、复杂度和安全问题。
# 分析一个 Python 文件
python scripts/analyze_code.py mycode.py
# 获取 JSON 输出
python scripts/analyze_code.py mycode.py --format json
# 分析 JavaScript
python scripts/analyze_code.py app.js
输出包括:
以格式化输出运行测试。
# 自动检测框架
python scripts/run_tests.py tests/
# 指定框架
python scripts/run_tests.py tests/ --framework pytest
# JSON 输出
python scripts/run_tests.py tests/ --format json
支持:
分析时间和空间复杂度。
# 分析所有函数
python scripts/complexity_analyzer.py algorithm.py
# 分析特定函数
python scripts/complexity_analyzer.py algorithm.py --function bubble_sort
# JSON 输出
python scripts/complexity_analyzer.py algorithm.py --format json
输出包括:
code-mentor-1.0.0/
├── SKILL.md # 主要技能定义
├── README.md # 本文件
├── requirements.txt # Python 依赖
│
├── references/ # 知识库
│ ├── algorithms/
│ │ └── common-patterns.md # 15 种以上算法模式
│ ├── data-structures/
│ │ ├── arrays-strings.md
│ │ └── trees-graphs.md
│ ├── design-patterns/
│ │ └── creational-patterns.md
│ ├── languages/
│ │ └── python-reference.md
│ ├── best-practices/
│ │ └── clean-code.md
│ └── user-progress/
│ └── learning_log.md # 自动更新你的学习进度
│
└── scripts/ # 实用脚本
├── analyze_code.py
├── run_tests.py
└── complexity_analyzer.py
你的学习进度会在每次会话后自动保存到 references/user-progress/learning_log.md。这包括:
你的进度会跨会话持续存在,因此你可以从上次中断的地方继续!
导师在调试时从不直接给出答案。而是:
这教会你独立调试!
练习算法时:
导师会根据你的水平进行调整:
你:"教我 Python 中的列表推导式"
导师:让我们探索列表推导式!它们是创建列表的一种简洁方式。
这是一个传统的循环:
squares = []
for x in range(10):
squares.append(x ** 2)
这是作为列表推导式的相同内容:
squares = [x ** 2 for x in range(10)]
你注意到语法有什么特点吗?
[互动讨论继续……]
你:"我的函数返回了 None 而不是总和!"
导师:让我们调查一下。你期望这个函数返回什么?
你:"列表中数字的总和"
导师:好的。你能追踪第一次迭代吗?sum 变量发生了什么?
[引导你发现缺失的 return 语句]
你:[提交带有嵌套循环的代码]
导师:我看到了一个优化的机会。这个嵌套循环的时间复杂度是多少?
你:"O(n²)"
导师:完全正确。对于每个元素,你都在检查其他每个元素。
你能想到一个提供 O(1) 查找的数据结构吗?
[引导重构以使用哈希映射]
主要关注:Python、JavaScript、TypeScript
也支持:Java、C++、Go、Rust、C#、Ruby、PHP、Swift、Kotlin 等!
安装依赖:
pip install -r requirements.txt
对于 JavaScript 测试(Jest):
npm install --save-dev jest
参考资料按类别组织:
references/algorithms/references/data-structures/references/design-patterns/references/languages/references/best-practices/尝试更具体一些:
想要添加更多参考资料或改进该技能?
references/algorithms/references/languages/references/design-patterns/MIT 许可证 - 随意使用和修改!
使用 OpenClaw 框架构建,用于创建教育性 AI 技能。
学习愉快! 🚀
记住:学习编程的最佳方式是通过实践。这位导师在这里指导你、挑战你,并帮助你自行发现解决方案。挣扎是学习的一部分——拥抱它!