☰
👁️ 预览
取消
💾 保存
C
Claude
▾
C
Claude
claude@note.center
🔔
消息通知
🔄
账号切换
⚙️
设置
🚪
退出登录
Markdown
富文本
## 核心思路 让 Claude Code 生成工具,本质上就是**用自然语言描述需求,让 AI 帮你写代码**。你只需要说清楚要什么,Claude 会完成编码、调试、优化的全流程。 ## 四步工作法 ``` 需求描述 → Claude 规划 → 编码实现 → 测试验证 → 迭代优化 ``` ## 第一步:写好需求描述 好的需求描述包含以下要素: | 要素 | 说明 | 好例子 | 差例子 | |------|------|--------|--------| | 目标 | 做什么用的 | "命令行日志分析工具" | "帮我写个工具" | | 技术栈 | 用什么语言实现 | "用 Python 3,只用标准库" | "用 Python" | | 功能清单 | 具体功能点 | "支持按日期过滤、统计级别分布" | "分析日志" | | 输入输出 | 输入什么、输出什么 | "读取 access.log,输出表格" | "处理一下" | | 约束条件 | 限制和注意事项 | "文件超过 100MB 时给出提示" | "要快" | ### 好的例子 ``` 帮我写一个 Node.js 命令行工具,功能是批量调整图片大小: - 输入:指定图片目录 - 输出:缩放到指定宽高,保存到 output/ 目录 - 参数:--width 800 --height 600 --quality 80 - 要求:支持 jpg/png/webp 格式,处理进度条显示 - 约束:使用 sharp 库,兼容 Node.js 18+ ``` ### 差的例子 ``` 帮我写个图片处理工具 ``` ## 第二步:让 Claude 生成 ### 完整流程演示 你输入需求后,Claude 会: ``` 你:帮我写一个 Nginx 日志分析工具 Claude:好的,我先分析一下需求... 需要实现的功能: 1. 读取 Nginx access.log 2. 统计每个 IP 的访问次数 3. 统计每个 URL 的访问次数 4. 输出格式化的表格 我建议使用 Python 实现,只用标准库 开始编码... 【创建文件 log-analyzer.py】 代码实现完成,测试一下... 【运行 python3 log-analyzer.py access.log】 运行成功,输出结果如下: ┌──────────────┬───────┐ │ IP │ 次数 │ ├──────────────┼───────┤ │ 192.168.1.1 │ 152 │ │ 10.0.0.2 │ 89 │ └──────────────┴───────┘ 如果还需要其他功能,随时告诉我。 ``` ### 分步推进策略 对于复杂工具,分多轮对话逐步构建: ``` 第 1 轮:生成核心功能 "生成基础框架,能读取日志文件并逐行输出" 第 2 轮:添加统计功能 "添加 IP 统计和 URL 统计功能,按访问次数降序排列" 第 3 轮:增强输出 "输出格式改为表格,添加颜色区分高低频" 第 4 轮:添加参数支持 "支持通过命令行参数指定日志路径、过滤条件" 第 5 轮:健壮性提升 "添加错误处理、文件不存在提示、大文件处理" ``` ## 第三步:调试和修复 生成工具后,Claude 会自动运行测试。如果出错,它会自动分析并修复: ### 常见的调试场景 | 问题 | Claude 的处理方式 | |------|-----------------| | 语法错误 | 自动读取错误信息、定位问题行、修复 | | 运行时异常 | 分析堆栈跟踪、补充边界条件处理 | | 逻辑错误 | 检查代码逻辑、添加日志输出排查 | | 性能问题 | 分析瓶颈、优化算法或数据结构 | ### 手动调试 你也可以主动让 Claude 帮你调试: ``` 这个工具运行报错了,错误信息: TypeError: Cannot read property 'length' of undefined 文件:src/parser.js:25 帮我看一下是什么问题 ``` Claude 会分析错误信息,定位问题并修复。 ## 第四步:将工具封装成 Skill 工具开发完成后,可以封装成 Claude Code 的 Skill,方便随时调用: ```javascript // .claude/skills/log-analyzer.js export const meta = { name: 'log-analyzer', description: '分析 Nginx 日志,统计 IP 和 URL 访问次数', whenToUse: '需要分析访问日志文件时', }; ``` 之后在对话中直接使用: ``` /log-analyzer /var/log/nginx/access.log ``` ## 实战示例合集 ### 示例 1:批量文件重命名工具 ``` 用 Python 写一个批量重命名工具: - 遍历指定目录下的所有文件 - 支持替换文件名中的指定字符串 - 支持添加前缀/后缀 - 支持正则表达式匹配 - 执行前预览改动 - --dry-run 参数只显示不改 ``` ### 示例 2:API 健康检查工具 ``` 用 Node.js 写一个 API 健康检查工具: - 从 config.json 读取 URL 列表 - 每隔 30 秒检查一次 - 记录响应状态码和响应时间 - 超时 5 秒标记为异常 - 异常时输出红色警告 - 运行结果输出到 health-report.log ``` ### 示例 3:数据库迁移脚本 ``` 写一个数据迁移脚本: - 从 SQLite 读取用户表 - 数据清洗:去除空值、格式统一 - 写入 PostgreSQL 目标表 - 每迁移 1000 条输出一次进度 - 迁移完成后输出统计报告 - 支持 --rollback 回滚 ``` ## 生成工具的最佳实践 ### ✅ 要做的 - **先小后大**:从最小可用版本开始,逐步迭代 - **明确边界**:说清楚文件范围、不要改什么 - **及时测试**:每轮迭代后让 Claude 运行验证 - **审查代码**:生成后再检查一遍,特别是涉及文件操作的逻辑 ### ❌ 不要做的 - **一次性提超大需求**:Claude 的处理能力有限,分步更靠谱 - **不明确技术栈**:不指定语言时 Claude 可能选你不熟悉的 - **忽略错误处理**:生成后记得让 Claude 补充异常处理 ## 💡 实际使用场景 ### 场景一:生成图片压缩工具 设计师每次都要手动压缩网页图片,前端小陈用 Claude Code 生成了一个工具: ``` 帮我写一个 Node.js 批量图片压缩工具,锐度优先模式,支持拖拽文件夹处理 ``` Claude 生成了脚本,小陈测试后发现压缩率不够理想,继续输入: ``` 把压缩质量从 80 降到 60,保留 EXIF 信息,输出压缩前后的大小对比 ``` Claude 调整了参数,重新运行。三次迭代后,工具达到了预期效果。小陈把它封装成了 Skill,之后设计师自己都能用。 ### 场景二:生成数据清洗脚本 运营给了数据分析师小吴一份 2GB 的 CSV,格式混乱。小吴让 Claude 生成脚本: ``` 写一个 Python 脚本清洗这份 CSV:去除空行、统一日期格式为 YYYY-MM-DD、去重、输出清洗报告 ``` Claude 生成的脚本跑完后输出了:原始 52341 行、清洗后 48722 行、去重 3619 行、日期修正 124 条。小吴直接拿数据去做分析了。 ### 场景三:生成 API 文档工具 后端老张写完了一套 API,懒得手写文档,用 Claude 生成了一个文档生成器: ``` 读取 routes/ 目录下的所有路由文件,自动生成 OpenAPI 格式的文档 ``` Claude 分析了路由注册代码,提取了 URL、方法、参数信息,生成了标准的 OpenAPI 规范文档,可以直接导入 Swagger UI。
预览
编辑内容后实时预览...