vibe_coding

Vibe Coding 故障排除指南

解决 Vibe Coding 和 Cursor 使用中的常见问题

📖 目录

  1. 代码不工作怎么办?
  2. AI 理解错误怎么办?
  3. 如何调试复杂问题?
  4. 性能问题排查
  5. 依赖管理问题
  6. 常见错误和解决方案

代码不工作怎么办?

问题诊断流程

步骤 1:检查错误信息

1. 查看控制台错误信息
2. 查看终端输出
3. 查看浏览器开发者工具
4. 记录完整的错误堆栈

步骤 2:理解错误

让 AI 解释错误

这个错误是什么意思?
[粘贴错误信息]

请解释:
1. 错误原因
2. 可能的影响
3. 如何修复

步骤 3:定位问题

使用 AI 定位

这段代码报错了:
[选中相关代码]

错误信息:[粘贴错误]

请帮我:
1. 定位问题所在
2. 分析可能的原因
3. 提供修复方案

常见代码问题

问题 1:语法错误

症状:代码无法运行,提示语法错误

解决方案 Prompt

检查这段代码的语法错误:
[选中代码]

请:
1. 找出所有语法错误
2. 提供修复后的代码
3. 解释错误原因

问题 2:逻辑错误

症状:代码能运行,但结果不对

解决方案 Prompt

这段代码逻辑有问题:
[选中代码]

期望行为:[描述期望]
实际行为:[描述实际]

请分析问题并修复。

问题 3:运行时错误

症状:运行时崩溃

解决方案 Prompt

运行时错误:
[粘贴错误信息]

相关代码:
[选中代码]

请:
1. 分析错误原因
2. 添加错误处理
3. 提供修复方案

AI 理解错误怎么办?

问题类型

类型 1:需求理解偏差

症状:AI 生成的代码不符合预期

解决方案

方法 1:更详细的描述

之前的描述不够清楚,重新描述:

[更详细、更具体的需求描述]

方法 2:提供示例

参考这个示例:
[提供示例代码或链接]

请按照类似的风格和结构实现

方法 3:分步骤描述

分步骤实现:
步骤 1:[具体步骤 1]
步骤 2:[具体步骤 2]
步骤 3:[具体步骤 3]

类型 2:上下文不足

症状:AI 生成的代码与项目不匹配

解决方案 Prompt

提供更多上下文:

项目技术栈:[列出技术栈]
项目结构:[描述结构]
相关代码:[选中相关代码]

请基于这些信息重新生成代码

类型 3:技术选型错误

症状:AI 使用了错误的技术或库

解决方案 Prompt

更正技术选型:

之前使用了 [错误的技术]
请改用 [正确的技术]

原因:[说明原因]

请重新实现

纠正 AI 的方法

方法 1:直接指出错误

刚才生成的代码有问题:
- 问题 1:[具体问题]
- 问题 2:[具体问题]

请修复这些问题

方法 2:提供正确示例

参考这个正确的实现:
[提供正确代码]

请按照这个方式重新实现

方法 3:引导式提问

这个实现方式可能不是最好的,因为:
[说明原因]

请考虑其他实现方式,比如:
[提供建议]

如何调试复杂问题?

调试策略

策略 1:分而治之

将复杂问题分解

这个复杂问题可以分解为:
1. 问题 A:[描述]
2. 问题 B:[描述]
3. 问题 C:[描述]

请逐个解决

策略 2:添加日志

让 AI 添加调试日志

在这段代码中添加详细的日志:
[选中代码]

记录:
- 输入参数
- 关键步骤
- 中间结果
- 错误信息

使用不同日志级别

策略 3:最小化复现

创建最小复现示例

创建一个最小示例来复现这个问题:
[描述问题]

只包含必要的代码,便于调试

调试工具使用

使用断点调试

在这段代码中设置断点:
[选中代码]

请:
1. 指出应该在哪里设置断点
2. 说明如何单步执行
3. 说明需要查看哪些变量

使用日志调试

添加结构化日志:
- 使用 JSON 格式
- 包含时间戳
- 包含上下文信息
- 可以过滤和搜索

使用测试调试

编写测试来重现这个 bug:
1. 写一个失败的测试(重现问题)
2. 修复代码让测试通过
3. 确保其他测试仍然通过

性能问题排查

性能问题诊断

步骤 1:识别瓶颈

让 AI 分析性能

分析这段代码的性能:
[选中代码]

请:
1. 识别可能的性能瓶颈
2. 分析时间复杂度
3. 提供优化建议

步骤 2:测量性能

添加性能监控

添加性能监控代码:
- 测量函数执行时间
- 测量数据库查询时间
- 测量 API 响应时间
- 记录内存使用

步骤 3:优化

基于测量结果优化

性能分析结果:
- 瓶颈:[描述]
- 耗时:[数据]

请优化这段代码,目标是:
[性能目标]

常见性能问题

问题 1:N+1 查询

症状:数据库查询次数过多

解决方案 Prompt

这个代码有 N+1 查询问题:
[选中代码]

请优化为批量查询

问题 2:不必要的循环

症状:循环嵌套或低效循环

解决方案 Prompt

优化这个循环:
[选中代码]

使用更高效的方法,比如:
- 列表推导式
- map/filter/reduce
- 数据库聚合

问题 3:内存泄漏

症状:内存使用持续增长

解决方案 Prompt

检查这段代码是否有内存泄漏:
[选中代码]

检查:
- 事件监听器是否正确移除
- 定时器是否清理
- 大对象是否及时释放

依赖管理问题

常见依赖问题

问题 1:版本冲突

症状:依赖包版本不兼容

解决方案 Prompt

解决依赖版本冲突:

冲突的包:[列出]
当前版本:[版本]
需要的版本:[版本]

请:
1. 分析冲突原因
2. 提供解决方案
3. 更新 package.json

问题 2:依赖缺失

症状:找不到模块

解决方案 Prompt

模块找不到错误:
[错误信息]

请:
1. 检查是否已安装
2. 检查导入路径
3. 提供安装命令

问题 3:依赖过时

症状:使用过时的依赖

解决方案 Prompt

更新项目依赖:
- 检查过时的包
- 更新到最新版本
- 检查破坏性更改
- 更新相关代码

依赖管理最佳实践

1. 锁定版本

锁定依赖版本:
- 使用 package-lock.json
- 固定主要版本
- 定期更新

2. 审查依赖

审查新依赖:
- 检查安全性
- 检查维护状态
- 检查许可证
- 检查大小

3. 分离依赖

分离依赖类型:
- dependencies:生产依赖
- devDependencies:开发依赖
- peerDependencies:对等依赖

常见错误和解决方案

错误 1:Cannot read property ‘X’ of null/undefined

原因:访问了 null 或 undefined 的属性

解决方案 Prompt

修复这个错误:
[选中代码]

错误:Cannot read property 'X' of null

请:
1. 添加空值检查
2. 使用可选链操作符
3. 提供默认值

错误 2:Module not found

原因:模块路径错误或未安装

解决方案 Prompt

解决模块找不到的问题:
[错误信息]

请:
1. 检查导入路径
2. 检查是否安装
3. 提供正确的导入方式

错误 3:TypeError: X is not a function

原因:调用了非函数类型的值

解决方案 Prompt

修复类型错误:
[选中代码]

错误:X is not a function

请:
1. 检查变量类型
2. 确保正确导入
3. 添加类型检查

错误 4:Maximum call stack size exceeded

原因:无限递归

解决方案 Prompt

修复无限递归:
[选中代码]

请:
1. 找出递归调用
2. 添加终止条件
3. 优化递归逻辑

错误 5:CORS 错误

原因:跨域请求被阻止

解决方案 Prompt

解决 CORS 错误:
[错误信息]

请:
1. 配置 CORS 中间件
2. 设置正确的请求头
3. 处理预检请求

调试工作流

标准调试流程

  1. 重现问题
    创建一个最小示例来重现这个问题
    
  2. 收集信息 ``` 收集以下信息:
    • 错误信息
    • 相关代码
    • 环境信息
    • 复现步骤 ```
  3. 分析问题 ``` 分析这个问题:
    • 可能的原因
    • 影响范围
    • 解决方案 ```
  4. 实施修复 ``` 实施修复:
    • 修复代码
    • 添加测试
    • 验证修复 ```
  5. 预防措施 ``` 添加预防措施:
    • 添加测试
    • 添加验证
    • 改进错误处理 ```

获取帮助

使用 AI 获取帮助

1. 详细描述问题

详细描述问题:
- 你在做什么?
- 期望发生什么?
- 实际发生了什么?
- 错误信息是什么?

2. 提供上下文

提供上下文:
- 相关代码
- 项目结构
- 技术栈
- 环境信息

3. 提供复现步骤

复现步骤:
1. [步骤 1]
2. [步骤 2]
3. [步骤 3]
4. 错误发生

其他资源


实用调试工具和技巧

浏览器开发者工具

使用 Console 调试

// 在代码中添加调试语句
console.log('变量值:', variable);
console.table(arrayData);
console.group('调试组');
console.error('错误信息');
console.warn('警告信息');

让 AI 添加调试代码

在这段代码中添加 console 调试语句:
[选中代码]

记录关键变量的值

使用 Network 面板

检查 API 请求

分析这个 API 请求问题:
- 请求 URL:[URL]
- 请求方法:[方法]
- 响应状态:[状态码]
- 响应内容:[内容]

请分析可能的问题

使用 Sources 面板

设置断点调试

在这段代码中:
[选中代码]

请:
1. 指出应该在哪里设置断点
2. 说明如何查看变量值
3. 说明如何单步执行

命令行调试工具

Python 调试

使用 pdb

import pdb

# 在代码中设置断点
pdb.set_trace()

让 AI 添加调试

在这段 Python 代码中添加 pdb 调试:
[选中代码]

在关键位置设置断点

Node.js 调试

使用 debugger

// 在代码中添加
debugger;

使用 Node Inspector

配置 Node.js 调试:
- 使用 --inspect 标志
- 在 Chrome DevTools 中调试

日志系统

结构化日志

让 AI 实现日志系统

实现一个日志系统:
- 不同日志级别(DEBUG, INFO, WARN, ERROR)
- 格式化输出
- 可选的文件输出
- 时间戳

日志分析

分析日志文件

分析这个日志文件:
[粘贴日志内容]

请:
1. 识别错误模式
2. 找出问题根源
3. 提供解决方案

常见场景故障排除

场景 1:API 调用失败

问题诊断 Prompt

API 调用失败:
- URL:[URL]
- 方法:[方法]
- 错误:[错误信息]
- 状态码:[状态码]

请:
1. 分析可能的原因
2. 检查请求格式
3. 检查认证信息
4. 提供修复方案

场景 2:数据库连接问题

问题诊断 Prompt

数据库连接失败:
- 错误:[错误信息]
- 数据库类型:[类型]
- 连接字符串:[连接字符串(隐藏敏感信息)]

请:
1. 检查连接参数
2. 检查网络连接
3. 检查权限设置
4. 提供解决方案

场景 3:前端渲染问题

问题诊断 Prompt

前端渲染问题:
- 期望:[描述期望]
- 实际:[描述实际]
- 浏览器:[浏览器版本]
- 控制台错误:[错误信息]

请:
1. 检查 HTML 结构
2. 检查 CSS 样式
3. 检查 JavaScript 逻辑
4. 提供修复方案

场景 4:构建和部署问题

问题诊断 Prompt

构建失败:
- 构建工具:[工具名]
- 错误信息:[错误]
- 配置文件:[相关配置]

请:
1. 分析构建错误
2. 检查依赖
3. 检查配置
4. 提供解决方案

预防性调试

代码审查清单

让 AI 进行代码审查

审查这段代码:
[选中代码]

检查:
1. 潜在的错误
2. 性能问题
3. 安全问题
4. 代码质量
5. 最佳实践

添加防御性编程

让 AI 添加防御性代码

为这段代码添加防御性编程:
[选中代码]

包括:
- 输入验证
- 错误处理
- 边界检查
- 空值检查

编写测试

让 AI 编写测试

为这个函数编写测试:
[选中函数]

包括:
- 正常情况
- 边界情况
- 错误情况
- 异常情况

总结

故障排除的关键:

  1. 保持冷静:问题总是可以解决的
  2. 系统化方法:按照流程诊断
  3. 利用 AI:让 AI 帮助分析和解决
  4. 记录经验:记录解决方案,避免重复
  5. 持续学习:从问题中学习

下一步



上一篇

← 实战项目案例

🏠 返回主页

下一篇

已是最后一篇


遇到问题不要慌,系统化解决! 🚀