过度依赖 AI
这是什么问题?
看起来 AI 能写代码很爽,但如果完全依赖 AI,把所有权限都给它,让它自主完成所有工作,自己不参与控制和检验,最后往往会出现严重问题。
真实场景
场景 1: AI 误删源码(最危险)
我的经历:
在开发过程中,给 AI 的授权过大,在沟通中 AI 理解错了我的意图,把项目的重要代码甚至整个源码目录删除了。
最极端的情况:
- AI 理解错意图,删除了整个项目的源码
- 如果没有 Git 版本控制,代码基本无法恢复
- 这是最坏的情况,可能导致几周甚至几个月的工作成果丢失
教训:
- ⚠️ 永远不要给 AI 删除整个目录的权限
- ⚠️ 删除操作前要再三确认
- ⚠️ 必须使用 Git,定期提交代码
场景 2: 完全放手,AI 跑偏
表现:
- 让 AI 自主写代码,自己完全不参与
- 看起来很爽,期待 AI 全自动完成
- 中途不检查,不测试,不干预
结果:
- 产出的代码完全跑偏,无法使用
- 测试无法通过
- 浪费大量 Token 和时间
- 除了消耗成本,没有任何有效产出
本质问题: AI 不是魔法,它需要人的引导和把控。把 AI 当成"全自动代码机器",是对 Vibe Coding 的误解。
正确的认知
Vibe Coding ≠ 让 AI 干活自己玩手机
真相:
从我深度 Vibe Coding 的实践来看,Vibe Coding 反而比传统开发更消耗脑力,更需要精神集中。
为什么?
因为你需要:
- 与 AI 深度协作
- 对 AI 的代码进行过程把控
- 保持全局视野,理解 AI 写的每一段代码(参考理解代码章节)
- 及时发现方向偏离,立即纠正
我的真实感受:
不是让 AI 写代码然后自己玩手机的状态,而是一种深度进入心流的状态 —— 全神贯注地与 AI 协作,掌控全局。
我的 AI 协作习惯
经过踩坑和总结,我现在的协作流程是:
1. 需求讨论
和 AI 讨论需求,确认理解一致
- 我:描述要做什么
- AI:复述需求,提出问题
- 我:确认理解正确,补充细节
2. 技术方案确认
让 AI 给出方案,我来评估和决策
- AI:提供技术选型建议
- 我:根据项目实际情况选择
- 确保方案可行,不盲目采纳
3. 代码编写(关键:过程监控)
不是让 AI 全自动写完,而是分步骤进行
- AI 写一部分,我检查一部分
- 发现问题立即纠正
- 保证方向不偏离预期
4. 自动测试 + 人工测试
AI 写完代码后,我要求 AI 先自动测试
- AI:运行测试用例,检查基本功能
- 我:人工测试,验证实际效果
- 关于测试的详细方法,参考后续的不重视测试章节
我十分注重测试 —— 这是保证代码质量的最后一道防线。
常见错误模式
❌ 错误 1: 盲目信任 AI 的代码
开发者:"帮我实现用户登录功能"
AI: [写了 200 行代码]
开发者: "看起来没问题,直接用吧"(没看懂)2
3
后果:
- 代码有安全漏洞不知道
- 性能问题不知道
- 逻辑错误不知道
❌ 错误 2: 让 AI 做大规模重构
开发者:"帮我重构整个项目,优化代码结构"
AI: [开始删除、移动、重写大量文件]
开发者: [去喝咖啡了]2
3
后果:
- 代码结构完全变了
- 原有功能可能被破坏
- 测试全挂了
- 回退困难
❌ 错误 3: 不理解代码就继续开发
开发者:"这段代码报错了,帮我改"
AI: [修改了代码]
开发者:"好了吗?那继续写下一个功能"2
3
后果:
- 不知道为什么报错
- 不知道 AI 改了什么
- 后续问题会累积
- 最后整个项目变成"黑盒"
正确的协作模式
✅ 模式 1: 理解后再继续
开发者:"这段代码报错了,帮我分析原因"
AI: [解释错误原因]
开发者:"明白了,是因为 XX 没处理。怎么改?"
AI: [给出修改方案]
开发者: [理解方案,确认后让 AI 修改]2
3
4
5
好处:
- 你知道为什么出错
- 你知道怎么修复
- 下次遇到类似问题,你能独立解决
✅ 模式 2: 分步骤验证
开发者:"先实现用户注册的表单部分"
AI: [写了表单代码]
开发者: [测试表单,确认没问题]
开发者:"好的,现在实现后端接口"
AI: [写了接口代码]
开发者: [测试接口,确认连通]2
3
4
5
6
好处:
- 每一步都可控
- 问题及时发现
- 不会累积技术债
✅ 模式 3: 保留关键决策权
AI:"建议使用 MongoDB 作为数据库"
开发者:"为什么推荐 MongoDB?和 PostgreSQL 比有什么优劣?"
AI: [对比分析]
开发者:"我的项目需要复杂查询,还是用 PostgreSQL 吧"2
3
4
好处:
- 技术选型由你决定
- AI 提供参考,你做判断
- 避免不合适的技术栈
给新手的建议
1. AI 是助手,不是替代品
你要掌控的:
- ✅ 项目目标和需求
- ✅ 技术方案选择
- ✅ 代码质量标准
- ✅ 功能优先级
AI 帮你做的:
- ✅ 写具体代码
- ✅ 解决语法问题
- ✅ 提供技术建议
- ✅ 加速开发过程
2. 永远要理解 AI 写的代码
不理解就不要用!
如果 AI 写了一段你完全看不懂的代码:
- 让 AI 解释每一行在做什么
- 问清楚为什么要这么写
- 确认理解后再继续
参考方法论中的理解代码章节。
3. 设置合理的权限边界
危险操作要慎重:
- ❌ 删除整个目录
- ❌ 大规模重构
- ❌ 修改核心配置
- ❌ 批量替换代码
安全做法:
- ✅ 先让 AI 列出要改的文件
- ✅ 逐个文件确认后再操作
- ✅ 每次改动后立即测试
- ✅ 使用 Git,随时可以回退
4. 测试是必须的
不管 AI 说"这段代码肯定没问题",你都要测试:
最低要求:
- ✅ 手动运行一次,看是否正常
- ✅ 测试核心功能
- ✅ 检查边界情况
推荐做法:
- ✅ 让 AI 写测试用例
- ✅ 自动化测试
- ✅ 持续集成
详见后续的不重视测试章节。
5. 保持思考和判断
遇到问题时:
❌ 错误做法:
"AI,这个功能实现不了,怎么办?"
[AI 给出方案]
"好的,就这么办"2
3
✅ 正确做法:
"AI,这个功能实现不了,有哪些可能的原因?"
[AI 分析原因]
"有哪些解决方案?各有什么优劣?"
[AI 对比方案]
"我选方案 2,因为 XX。帮我实现"2
3
4
5
关键:
- 你在思考,你在判断
- AI 提供信息,你做决策
- 这样你才能真正成长
核心要点
Vibe Coding 需要深度集中,不是让 AI 干活自己玩手机
AI 是工具,你是主导,关键决策要自己做
理解代码是必须的,不理解就不要用
设置权限边界,危险操作(删除、重构)要慎重
测试是底线,不管 AI 说什么,都要测试
保持思考和判断,AI 提供信息,你做决策
记住:AI 让你更快,但不能替你思考。
你的角色是"架构师 + 质检员",AI 的角色是"高效的编码助手"。