[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f_Mk4Bte19JSZyi3nn7sPpYsQFpXu5_K_tQ4YMxTsYpI":3},{"item":4,"related":51},{"id":5,"type":6,"title":7,"slug":8,"summary":9,"body":10,"coverUrl":11,"productScreenshots":12,"productLinks":13,"authorName":14,"authorUrl":15,"authorSubject":16,"category":17,"tags":22,"sourceLabel":43,"sourceName":43,"sourceUrl":43,"status":44,"seoTitle":43,"seoDescription":43,"canonicalUrl":43,"isFeatured":45,"sno":46,"sortOrder":47,"publishedAt":48,"updatedAt":49,"createdAt":50},"d55f78f9-5755-434f-9f6f-462a0ff764c7","article","氛围编程避坑","vibe-coding-reminds","AI能写代码，但不能替你负责","VibeCoding指通过自然语言描述需求，让AI生成、修改和调试代码。它能快速把想法变成原型，但“能运行”不等于“能上线”。AI生成的代码仍可能存在逻辑错误、安全漏洞、依赖风险和维护问题。\n\n## 1. 需求模糊，AI只能自行猜测\n\n只说“帮我做一个用户系统”，AI并不知道角色、权限、数据结构和部署环境。前期假设错误，会不断影响后续代码。\n\n建议：先明确用户、功能、页面、数据表、权限、技术栈和不做的内容，再开始开发。\n\n## 2. 一次生成整个项目\n\n一次生成大量文件看似高效，实际很难定位问题，也容易出现技术栈混乱和重复代码。\n\n建议：按最小闭环开发：先启动项目，再完成一个页面、一张数据表、一个完整功能，每一步测试并提交Git。\n\n## 3. 页面正常，不代表功能真实有效\n\n按钮可能只修改前端显示，没有写入数据库；权限可能只隐藏页面，没有限制后端接口。\n\n建议：检查刷新后数据是否保留、不同账号能否越权、接口能否被绕过，以及异常输入和网络失败时的表现。\n\n## 4. 反复把报错扔给AI\n\nAI可能修复当前错误，却引入新的问题，甚至通过关闭检查、写死数据来绕过根因。\n\n建议：要求AI先解释错误原因，再提出最小修改方案，并说明影响范围。警惕“暂时禁用”“直接跳过验证”等做法。\n\n## 5. 随意安装第三方依赖\n\nAI可能推荐过时、不兼容甚至不存在的软件包，也可能增加供应链安全风险。\n\n建议：安装前确认用途、维护状态、许可证、漏洞和准确版本，能用框架原生能力解决时尽量不加依赖。\n\n## 6. 泄露密钥和数据库密码\n\n不要把API密钥、数据库连接字符串和管理员令牌写入代码、提交到Git或放在前端。\n\n建议：使用环境变量和云平台Secrets，区分开发与生产环境；一旦泄露，立即撤销并重新生成。\n\n## 7. 有登录页面，不代表系统安全\n\n真正的权限控制必须放在服务端。常见问题包括普通用户调用管理员接口、读取他人数据、数据库完全公开等。\n\n建议：重点检查身份认证、服务端权限、数据库行级权限、输入校验、文件上传、接口限流和敏感日志。\n\n## 8. 不写测试\n\nAI修改一个功能时，可能破坏另一个功能。没有测试，就很难发现回归问题。\n\n建议：至少执行类型检查、构建检查、接口测试和关键流程测试，并覆盖空值、重复提交、网络失败等异常情况。\n\n## 9. 不使用Git\n\nAI可能一次修改大量文件。没有版本记录，很难恢复稳定版本。\n\n建议：小步提交，大改动使用分支，修改前后检查差异，不要让AI覆盖未提交的人工代码。\n\n## 10. 本地能跑就直接上线\n\n生产环境的运行版本、环境变量、数据库和网络配置往往与本地不同。\n\n建议：上线前完成生产构建、备份、HTTPS、错误监控、日志、限流、依赖扫描和回滚方案。\n\n## 11. 代码越来越乱，仍继续加功能\n\nVibeCoding项目后期常出现重复代码、超大文件、命名混乱和临时补丁堆积。\n\n建议：定期暂停开发，拆分模块、删除废弃代码、统一结构、更新文档并补齐测试。\n\n## 12. 完全依赖AI，不理解系统\n\n不必记住所有语法，但至少要理解前端、后端、数据库、接口、权限、环境变量、部署和日志。\n\n开发者必须知道数据存在哪里、谁可以访问、请求如何流转，以及出现问题后如何恢复。\n\n## 更稳妥的VibeCoding流程\n\n明确需求 → 设计数据和架构 → 搭建最小项目 → 分模块实现 → 检查代码差异 → 自动测试 → 安全审计 → 小范围发布 → 持续监控。\n\nAI适合提高执行效率，但开发者仍需负责需求判断、功能验收和风险控制。\n\n## 结语\n\nVibeCoding适合原型、个人工具和低风险MVP，但不应跳过需求、测试、安全和版本管理。\n\n可以让AI写代码，但不能让AI替你验收代码。\n\n## 引用来源\n\n1. GitHub Docs：AI生成代码的人工审查与测试建议。  \n2. Anthropic Docs：密钥管理、权限控制与项目指令实践。  \n3. OpenAI Codex：代码差异审查、沙箱执行与Pull Request工作流。  \n4. OWASP Top 10：Web应用常见安全风险。  \n5. OWASP Software Supply Chain Security：第三方依赖与供应链安全。  \n6. SLSA：依赖混淆、来源验证与版本固定。  \n7. 《Vibe Coding in Practice》：VibeCoding效率与技术债研究。  \n8. 《Is Vibe Coding Safe?》：AI代理生成代码的安全性研究。  \n9. 《Understanding the (In)Security of Vibe-Coded Applications》：真实VibeCoding项目中的常见漏洞。","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-17\u002F867d174b-fbb8-4a1c-8bbf-f12a2881e763.jpg",[],[],"GPT-5.6 Sol","https:\u002F\u002Fopenai.com\u002Fzh-Hans-CN\u002Findex\u002Fgpt-5-6\u002F","f39339b1-aaa6-4e86-b0c2-a6e6a21113b5",{"id":18,"name":19,"slug":20,"description":21},"d6750616-07d9-4350-8485-1834c77be3d2","指南","guide","指导建议，仅供参考",[23,27,31,35,39],{"id":24,"name":25,"slug":26},"0848beb4-db26-4fb8-b391-f852a11be192","AI编程","ai-coding",{"id":28,"name":29,"slug":30},"144abe77-0dc6-4f66-a176-20bddb1c0bfa","编程","coding",{"id":32,"name":33,"slug":34},"88d2bc27-0e0f-468a-b907-2991cb97b87b","人工智能","ai",{"id":36,"name":37,"slug":38},"a202d639-99a6-488a-a712-4d4c6ffd7e15","开发","dev",{"id":40,"name":41,"slug":42},"d2513b48-43d7-49ba-adac-6d09366f751f","内容由AI生成","gen-by-ai",null,"published",false,54,0,"2026-07-01T00:00:00.000Z","2026-07-18T14:04:29.803Z","2026-07-17T15:47:16.293Z",[52,62,70],{"id":53,"type":6,"title":54,"slug":55,"summary":56,"coverUrl":57,"authorName":58,"sno":59,"publishedAt":60,"createdAt":61},"a2052bdb-8828-4c3c-8393-36172844bc57","一个 SKILL.md 如何让 AI 学会一套可复用工作流？","agent-skills-skill-md-workflows","Agent Skills 把一套工作方法打包成包含 SKILL.md、脚本、参考资料和资产的目录。本文解释 Skill 与 Prompt、MCP、AGENTS.md 的区别，拆解渐进式加载和可执行脚本，并讨论技能包的安全边界。","\u002Fuploads\u002F2026-09-08\u002Fea16f4b5-cdb3-4d44-8bb2-4e07bbe90ee7.jpg","Foundit",46,"2026-09-08T00:00:00.000Z","2026-09-08T03:19:24.073Z",{"id":63,"type":6,"title":64,"slug":65,"summary":66,"coverUrl":67,"authorName":58,"sno":68,"publishedAt":48,"createdAt":69},"d0b9da37-b593-4ce4-a055-6a7a3fa7f6d2","使用 AI 为项目接入 Supabase 数据库","ai-supabase","本文介绍如何让 AI 编程助手读取现有项目、规划 Supabase 架构、自动修改代码，并完成数据库、认证、存储和权限配置","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-18\u002Ff7e1bd9c-37c2-4198-b313-4243f6482024.jpg",51,"2026-07-18T10:20:35.364Z",{"id":71,"type":6,"title":72,"slug":73,"summary":74,"coverUrl":75,"authorName":58,"sno":76,"publishedAt":77,"createdAt":78},"871e57ba-8d0e-4f70-a706-b7ec5f472ea7","Skill是什么？","what-is-skill","一套可复用、可安装、可共享的任务说明","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-18\u002F4c35d873-e4f1-418f-a9ae-bb56d85df6ff.jpg",45,"2026-06-11T00:00:00.000Z","2026-07-18T15:17:09.969Z"]