将 AI 生成的块放入您的工作系统

发布: (2026年5月1日 GMT+8 01:54)
9 分钟阅读
原文: Dev.to

请提供您希望翻译的正文内容,我才能为您进行简体中文翻译。

Part 1: 为什么 Vibe Coding 会崩溃

Last month, I spent an afternoon building a URL shortener with Claude.

第一条提示运行得非常顺利。代码出现了。测试通过了。我感觉自己像个巫师。

到了第五条提示,情况变得奇怪。AI 添加了我没有要求的功能,数据库模式被改了两次,而且它记不住 API 端点应该是什么。

到第十条提示时,我已经不再写代码——我在和一台忘记了二十分钟前对话内容的机器进行谈判。

不是 AI 的失败,而是方法的失败。

大多数人使用 AI 的方式和使用搜索引擎相同:我们提出请求,得到答案,然后继续前进。这对食谱和琐事有效,但对构建软件****无效

为什么?因为 AI 有一个隐藏的限制——不是技术限制,而是结构性限制。一旦看见它,就再也看不见它了。

在本系列中,我将:

  1. 向你展示这个限制。
  2. 向你展示一个简单的规避方法。

解决方案不是更好的提示,而是对工作方式的不同思考。

如果问题从来就不是 AI 本身呢?

1.1 模式:它开始得如此顺利

你一定有这种体验。所有用 AI 构建非平凡项目的人都有这种体验。

  1. 启动一个新项目,使用 Claude、GPT 或 Copilot。
  2. 前几次交互感觉像魔法。
Prompt: “Build me a URL shortener API.”
  • 代码出现。
  • 它能运行。
  • 你欣喜若狂。
Prompt: “Now add analytics so I can see how many times each short link was clicked.”
  • AI 加上了分析功能。仍然能运行。两项功能完成。
Prompt: “Add user accounts so people can manage their own links.”
  • AI 加入了用户账户,但现在开始出问题
    • 第 1 项功能的数据库模式不再完全匹配。
    • 第 3 项的认证逻辑与第 2 项的分析查询冲突。
    • AI 试图修复,却引入了回归。

上下文窗口被填满,AI 失去对早期决策的追踪,你不再是写代码——而是用键盘驱赶一群猫。

这就是**“vibe coding”**:随意提示 AI 生成代码,期望它们能够自洽。它适用于小脚本和演示,但在真实项目中会因自身重量而崩塌。

为什么?

1.2 你可能已经注意到但从未命名的隐藏限制

简单实验

任务描述预期 AI 输出质量
A(小且聚焦)编写一个 Python 函数,接受 URL 字符串并返回 True(如果是有效 URL)或 False(否则)。处理缺少协议、非法字符、域名格式错误等边缘情况。干净、正确、带有良好注释的函数,几秒钟内完成。优秀
B(大且模糊)构建一个完整的 URL 缩短服务,包含网页界面、REST API、用户账户、点击分析和数据库。使用 Python。能够运行的东西,但认证部分可能与分析不兼容,数据库模式可能不一致,等等。差 – 中等

相同的 AI、相同的模型、相同的能力——唯一的区别是任务的规模和范围

LLM 具有上下文窗口:一次性能够在工作记忆中保持的信息量上限。

  • 小而自包含的问题能够舒适地停留在该窗口内。
  • 大型系统设计会溢出窗口:模型忘记早期决策、自相矛盾,产生脆弱的代码。

但还有更深层的洞见。

1.3 改变一切的新设计方法

AI 像系统架构师那样思考。它不会维护一个包含所有相互关联和权衡的完整项目心理模型。

AI 的思考方式

  • “给定输入 X,产生输出 Y。”
  • “验证这个字符串。”
  • “查询那个数据库表。”
  • “格式化这个响应。”

AI 自然不理解的内容

(此处保持原文未翻译的内容,后续将在 Part 2 中继续)

Source:

  • URL 验证器应如何与密钥生成器协同工作。
  • 存储管理器应在分析日志记录之前还是之后调用。
  • 当重定向处理程序找不到密钥时会发生什么。

这些都是 集成关注点,而不是 AI 的强项。

当开发者在大型任务上遇到 AI 的局限时,通常会:

  1. 放弃 – “AI 还不适合真实项目。”
  2. 继续硬逼 – “让我写一个更长、更详细的提示。”

这两种做法都错失了关键。

正确的回应

不要让 AI 构建整个系统。让 AI 构建 函数。你把这些函数连接成系统。

1.4 这能解锁什么

角色AI人类
任务编写优秀的 URL 验证器、密钥生成器、存储管理器、重定向处理程序等(每个都是 功能块)。定义块,指定它们的连接方式,验证连接是否有效。
范围小而独立的单元,具有明确的输入、明确的输出且没有隐藏依赖。系统级别的架构与集成。
结果为每个块提供高质量、可测试的代码。通过这些块构建出连贯、可维护的系统。

Vibe Coding(前) vs. Functional‑Block Design(后)

方面Vibe CodingFunctional‑Block Design
提示大小为整个系统准备一个巨大的提示为每个块准备多个小提示
上下文处理AI 丢失上下文,产生自相矛盾每个块的上下文都很小且聚焦
集成方式偶然、脆弱明确且经过设计
调试难度难以判断是哪个块出错每个块都可以单独测试
变更方式需要重新生成大段代码只修改一个块,其他保持不变

1.5 第 2 部分和第 3 部分的内容预告

第 2 部分 我们将介绍 功能块设计 (Functional Block Design, FBD)——一种简单、可重复的方法论,将上述洞见付诸实践。你将学习:

  • 如何将系统拆解为功能块。
  • 如何编写 块规范(供人类阅读的描述和供 AI 使用的提示)。
  • 如何将这些块编排成一个可运行的应用程序。

第 3 部分 将深入探讨测试、版本管理以及块式方法的扩展,展示在项目规模扩大时如何保持 AI 输出的可靠性。

敬请期待!

I) 如何从提示生成代码

如何将所有内容存储在一个 .py 文件中

在第 3 部分,我们将构建完整的 URL 缩短器——所有六个块,集成成一个可运行的系统。

通过本系列的学习,您将拥有一种可重复的方法,将 AI 生成的代码转化为真正协同工作的系统。

再也不用驱赶猫了。

Cover image generated with Grok / xAI

0 浏览
Back to Blog

相关文章

阅读更多 »

模型越智能,节省越多。

神话:更智能的模型会让插件变得多余。自从 WOZCODE 推出以来,许多 Claude Code 高级用户低声说插件的优势将会消失。