
Vibe 编程
探索 Vibe 编程:AI 驱动的工具如何让任何人将想法变成代码,使应用开发更快、更易上手、更具创造力。

学习如何结合 TDD 与 Windsurf、Claude 3.5 Sonnet 等 AI 编码代理,自动化并优化您的软件开发流程。
TDD 的核心是一个名为红-绿-重构的循环过程。该循环从**“红”**阶段开始,开发者编写一个自动化测试用例,定义所需的功能或行为。这个测试最初必然失败,因为相应的代码尚未实现。这个初始失败非常关键,它确保测试确实在检测目标功能,并且在代码实现后能捕捉到错误。
接下来的**“绿”**阶段,需要编写最少量的代码使之前失败的测试通过。这一原则促使开发者聚焦于测试所规定的即时需求,保持代码简洁,防止过度设计。
最后的**“重构”**阶段,致力于优化测试代码和生产代码的结构、可读性与可维护性,同时确保所有现有测试始终通过。重构让代码库保持健康,适应未来的变化而不会引入回归,现有测试集在此阶段为变更提供安全网。
影响 AI 代理编码表现的因素很多,从 LLM 模型到代码结构再到开发流程。我们发现结合 Windsurf 与 Claude 3.5 sonnet 能很好地实现 TDD。以下是一个用 TDD 实现的示例任务。
在开始编码之前,需要如下准备:
请确保已经根据 TDD 编写了测试,并且这些测试涵盖了你认为逻辑范围内对 AI 代理有帮助的绝大部分问题。无需为了 AI 代理而特意更改或定制测试。如果测试及其命名规范是标准化的会更好。AI 代理的第一步就是查看这些测试并开始实现。
以下是一个测试示例,用于检测文档是否被正确插入到 MongoDB 中:

Java(或其他编程语言)中的接口是一种结构,用来定义类应该具备的方法。为了进一步引导 AI 代理,为你的数据仓库创建一个插入文档的接口会很有帮助:


最后,还需要一个具体的任务描述。通常你可以用 JIRA 或 GitHub issue 来定义任务。我们的任务如下:

Vibe coding 指的是你用自然语言(甚至语音)描述需求,AI 实时为你生成代码。我们将在本博客中详细介绍 Vibe Coding。以下是我在 Windsurf 中用于完成任务的提示词:

实现如下查询,可由一个或多个命名查询与 Java 代码组合完成。
查找在指定日期范围内,完成了至少 X 次评分高于 5 的行程,并且从未收到过低于 3 星评分的所有司机。
注意:
你不必用单条查询解决此任务(可以结合 Java 代码和命名查询),但要考虑 ORM 性能,即当实体很多时方案依然要足够高效。在讨论环节,你应能解释糟糕查询可能引发的问题类型。
@Ass1_2_2Test.java#L35-60是对应的测试。已在@DriverDAO.java#L34-63实现
在 vibe coding 时,明确指出相关文件是最重要的。现在,只需静待 AI 代理施展魔法。它实现了类、运行了测试,并不断迭代直到测试全部通过:

Yasha 是一位才华横溢的软件开发者,专攻 Python、Java 以及机器学习。Yasha 撰写关于人工智能、提示工程和聊天机器人开发的技术文章。


探索 Vibe 编程:AI 驱动的工具如何让任何人将想法变成代码,使应用开发更快、更易上手、更具创造力。

探索 Vibe 编程和自主 AI 智能体如何让软件开发民主化,使任何人都能在无需深厚编程知识的情况下构建应用,并重塑未来的编程格局。...

通过我们全面的12要素方法论,学习如何构建健壮、可投入生产的AI代理。探索自然语言处理、上下文管理和工具集成的最佳实践,打造可扩展并真正创造商业价值的AI系统。...