<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>踩坑 on Kalend's Blog</title><link>https://blog.kalend.top/tags/%E8%B8%A9%E5%9D%91/</link><description>Recent content in 踩坑 on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Fri, 17 Jul 2026 08:00:00 +0800</lastBuildDate><atom:link href="https://blog.kalend.top/tags/%E8%B8%A9%E5%9D%91/index.xml" rel="self" type="application/rss+xml"/><item><title>Vibe Coding翻车指南：10个让AI编程从'爽'变'灾难'的常见错误</title><link>https://blog.kalend.top/2026/07/17/2026-07-17-vibe-coding-pitfalls-guide.html/</link><pubDate>Fri, 17 Jul 2026 08:00:00 +0800</pubDate><guid>https://blog.kalend.top/2026/07/17/2026-07-17-vibe-coding-pitfalls-guide.html/</guid><description>&lt;p&gt;Google 2026年5月发布的《The New SDLC With Vibe Coding》白皮书有一组扎眼的数据：85%的专业开发者在用AI编程智能体，51%每天用，预估41%新代码由AI生成。&lt;/p&gt;
&lt;p&gt;用的人多，不等于用得好。&lt;/p&gt;
&lt;p&gt;Karpathy 2025年2月提出Vibe Coding，一年后又提出Agentic Engineering。这个进化本身就说明问题——Vibe Coding是起点，不是终点。很多人卡在&amp;quot;提示即祈祷&amp;quot;阶段：把需求扔给AI，然后祈祷别出错。&lt;/p&gt;
&lt;p&gt;今天不聊代码层面的bug（那篇写过了），聊方法论层面的10个系统性错误。每个都指向同一个核心：&lt;strong&gt;AI是乘数，工程纪律是被乘数&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误1大模块一次性生成"&gt;错误1：大模块一次性生成
&lt;/h2&gt;&lt;p&gt;一个prompt要求AI写完整认证系统——注册、登录、密码重置、JWT刷新、OAuth2集成，全要。&lt;/p&gt;
&lt;p&gt;结果：安全细节被简化（密码哈希用SHA256而非bcrypt，JWT没有刷新机制），错误处理缺失，接口风格不一致。看起来&amp;quot;能跑&amp;quot;，上线就炸。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：拆成小任务，每个≤200行。认证系统拆成：①用户模型+密码哈希 ②注册接口 ③登录+JWT签发 ④JWT刷新 ⑤OAuth2接入。每完成一个，验证一个。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误2模糊prompt产出平庸代码"&gt;错误2：模糊prompt产出平庸代码
&lt;/h2&gt;&lt;p&gt;&amp;ldquo;帮我优化这段代码&amp;rdquo;——AI会给你一个&amp;quot;还行&amp;quot;的版本。&amp;ldquo;用async/await重写这个函数，保持错误处理和日志，去掉callback hell&amp;rdquo;——AI给你精准的重构。&lt;/p&gt;
&lt;p&gt;Claude Code官方最佳实践指南反复强调：模糊的prompt只能得到模糊的结果。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：每次prompt回答三个问题——改什么、怎么改、保留什么。模糊的输入只能得到模糊的输出。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误3不过审就部署"&gt;错误3：不过审就部署
&lt;/h2&gt;&lt;p&gt;灰度发布，新接口静默失败——前端无提示，后端日志全是空catch块。用户投诉了才发现。&lt;/p&gt;
&lt;p&gt;AI生成≠可部署。这个等号不能画。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：AI代码必须过审才能合并。审查清单：①错误处理是否完整 ②边界条件是否覆盖 ③日志是否有意义 ④是否有硬编码的配置 ⑤是否有测试。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误4过度信任ai的完整性"&gt;错误4：过度信任AI的&amp;quot;完整性&amp;quot;
&lt;/h2&gt;&lt;p&gt;AI输出的代码&amp;quot;看起来很完整&amp;quot;——有注释、有docstring、有错误处理、甚至有测试。但仔细看，测试只覆盖了happy path，错误处理用了&lt;code&gt;except Exception: pass&lt;/code&gt;，docstring和实际行为不一致。&lt;/p&gt;
&lt;p&gt;AI的完整性是表面的。它会生成结构完整但逻辑有漏洞的代码。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：追问&amp;quot;为什么这么写&amp;quot;。AI选择某个方案时，问它为什么不用另一个。如果它答不上来或答得含糊，方案可能有问题。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误5context缺失导致幻觉"&gt;错误5：context缺失导致幻觉
&lt;/h2&gt;&lt;p&gt;没有AGENTS.md，没有项目规范文件，没有代码风格指南。AI只能靠猜——猜你用什么框架、猜你用什么数据库、猜你的错误处理风格。&lt;/p&gt;
&lt;p&gt;结果：同一个项目里，AI一会儿用Express一会儿用Fastify，一会儿用async/await一会儿用callback。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：给AI一个&amp;quot;上下文锚点&amp;quot;。AGENTS.md、.cursorrules、项目README，这些文件的价值不在于写得多详细，而在于AI有了参考系。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误6任务粒度不对"&gt;错误6：任务粒度不对
&lt;/h2&gt;&lt;p&gt;两个极端都致命：太大，AI出错概率飙升；太小，AI失去连贯性，生成的代码碎片化。&lt;/p&gt;
&lt;p&gt;类比：不会让实习生一次交付完整系统，也不会让他只写一行print。给AI的任务和给人的任务，粒度原则一样。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：单个任务的复杂度应该等于一个&amp;quot;中等难度的PR&amp;quot;——有明确输入输出，有清晰边界，一个资深工程师能在30分钟内review完。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误7迭代循环缺失"&gt;错误7：迭代循环缺失
&lt;/h2&gt;&lt;p&gt;一次性生成后就不管了。不跑测试，不做code review，不根据反馈调整。&lt;/p&gt;
&lt;p&gt;Vibe Coding的诱惑在于&amp;quot;看起来很快&amp;quot;。但如果没有迭代循环，快只是假象——你只是把调试时间从编码阶段移到了部署阶段。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：小步快跑+持续反馈。生成→验证→反馈→调整，每个循环不超过10分钟。如果一个循环内无法验证，任务粒度太大了。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误8审查机制空白"&gt;错误8：审查机制空白
&lt;/h2&gt;&lt;p&gt;没有code review流程，AI生成的代码直接合并到main分支。相当于把仓库的门禁卡交给了一个实习生，还不设审批。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：设计AI代码审查checklist。不用复杂，五条就够：①功能是否符合需求 ②错误处理是否完整 ③是否有安全隐患 ④是否有测试覆盖 ⑤代码风格是否一致。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误9只学工具不学心法"&gt;错误9：只学工具不学心法
&lt;/h2&gt;&lt;p&gt;Cursor、Claude Code、Codex、OpenCode——工具选了一堆，方法论停留在&amp;quot;提需求→等生成→复制粘贴&amp;quot;。&lt;/p&gt;
&lt;p&gt;工具一直在换，但方法论没变。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：工具是手段，不是目的。理解&amp;quot;任务拆解→上下文管理→迭代验证→审查部署&amp;quot;这个循环，比多装三个工具有用。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="错误10忽略验证成本"&gt;错误10：忽略验证成本
&lt;/h2&gt;&lt;p&gt;代码生成成本从&amp;quot;一个工程师一天&amp;quot;降到&amp;quot;几秒钟&amp;quot;，但验证成本并没有降。瓶颈从&amp;quot;写代码&amp;quot;转移到了两端：搞清要做什么，确认做对了。&lt;/p&gt;
&lt;p&gt;这两个才是真正的成本。很多人只关注&amp;quot;AI写得快不快&amp;quot;，忽略了&amp;quot;AI写得对不对&amp;quot;需要人来确认。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;心法&lt;/strong&gt;：把足够的时间花在验证上——跑测试、看diff、review逻辑。生成快≠正确，省下的编码时间要投入到验证中。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="从vibe-coding到agentic-engineering"&gt;从Vibe Coding到Agentic Engineering
&lt;/h2&gt;&lt;p&gt;Karpathy 2026年2月提出的Agentic Engineering，核心思想很简单：&lt;strong&gt;人负责定义目标、约束和质量标准，AI在结构化流程中执行，每个关键节点人工审核。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;不是让AI自己跑，是给人一个更高效的工作流。AI在里面的角色是&amp;quot;高效执行者&amp;quot;，不是&amp;quot;决策者&amp;quot;。&lt;/p&gt;
&lt;p&gt;Vibe Coding是&amp;quot;感觉对了就用&amp;quot;，Agentic Engineering是&amp;quot;验证对了才用&amp;quot;。前者靠直觉，后者靠流程。&lt;/p&gt;
&lt;p&gt;你不需要10个AI工具，你需要一个清晰的工程方法论。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;数据来源：Google《The New SDLC With Vibe Coding》(2026.5)、Karpathy 2025.2/2026.2公开演讲、Claude Code官方最佳实践指南&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>