> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# Codeium Windsurf 实测
- URL: https://www.hubwiz.com/blog/codeium-windsurf-test/
- Published: 2024-12-03T07:54:04.000Z
- Updated: 2024-12-03T07:54:04.000Z
- Description: 我的目标是创建一个最小的无头 DBOS 应用程序作为示例，以开始使用 Codeium 的 AI IDE Windsurf 。
- Author: admin
- Tags: TOOL, CODING ASSISTANT, CODEIUM, WINDSURF, #Import 2026-10-14 14:41

我的目标是创建一个最小的无头 [DBOS ](https://www.dbos.dev/?ref=hubwiz.com) 应用程序作为示例，以开始使用[ Codeium](https://codeium.com/?ref=hubwiz.com) 的 [AI IDE Windsurf](https://codeium.com/windsurf?ref=hubwiz.com)。

## 1、准备工作

以下是准备工作：

- 我创建了一个名为 `minimal-dbos` 的目录
- PostgreSQL 数据库系统在我的笔记本电脑上本地运行，使用默认连接参数值；否则 DBOS 当前将在启动时引发异常 ([issus](https://github.com/dbos-inc/dbos-transact-py/issues/150?ref=hubwiz.com))
- 我安装了 Codeium 的 Windsurf 默认安装，此时没有任何订阅，因为我正在开始使用 Windsurf

## 2、观察

请参阅下面的完整日志，了解我与 Windsurf 的操作和互动 - 它很长，但我保证充满了有趣的细节。

以下是我在此过程中的一些初步关键观察：

- 可以完全与 Windsurf 的聊天/代理功能进行交互，并且不受代码本身的限制
- 可以使用一个复杂的提示，并附带一些详细的说明，这在开始时可以完成很多工作
- Windsurf 解释了它的功能并进行了总结；这是一个很好的功能，因为它可以帮助您跟踪交互
- 它明确要求用户确认终端命令的执行。下面的日志不再包含命令执行的明确请求（提供了接受或拒绝命令的按钮），只包含按下其中一个按钮后的执行结果。

![](https://www.hubwiz.com/blog/content/images/2024/12/image-107.png)

- Windsurf 检测环境中的问题，例如，pip 的新版本可用
- 识别错误并修复它们。而且，最重要的是，它不会在第一次错误后放弃，它会继续修复自己的错误，非常令人印象深刻！
- 它可以运行外部脚本，例如 `mypy`

## 3、初步想法

为了获得这个更复杂的初始提示，我必须提供 Windsurf 无法自行解决的特定输入，例如，在应用程序启动时必须调用 `DBOS.launch()` 和 `DBOS.destroy()`。我必须在提示中提供一些关键知识，因为 Windsurf 无法自行确定这一点。

> 软件包提供商的注意事项：应提供尽可能多的文档，以便学习过程尽可能多地了解细节。

挑战或风险如下：我必须在提示中帮助 Windsurf 提供具体信息。这要求我了解具体细节，以及几周前通过手动构建 DBOS 应用程序学到的知识。我想知道如果没有事先的知识，我将如何获得一个可以运行的应用程序。

以下是我第一次使用 Windsurf 的完整日志。我很高兴地承认，这非常令人着迷。你可能自己也想象过，你可以一直要求更多改进、功能等等，这非常有趣且激励人心。

小小的观察：Windsurf 使用“我”、“你”、“我们”、“我们的”进行交流 — 它希望成为优秀团队的一员 🙂。

## 4、创建最小 DBOS 应用的完整日志

开始：一个复杂的提示，详细说明我的指示

我的图标，红色指南针（真北 :-)），显示我输入的提示，其他所有内容都是 Windsurf 提供的输出。

![](https://www.hubwiz.com/blog/content/images/2024/12/image-108.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-109.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-110.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-111.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-112.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-113.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-114.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-115.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-116.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-117.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-118.png)

## 5、生成的代码（无需任何更改）

目录

![](https://www.hubwiz.com/blog/content/images/2024/12/image-119.png)

main.py

![](https://www.hubwiz.com/blog/content/images/2024/12/image-120.png)

dbos-config.yaml

![](https://www.hubwiz.com/blog/content/images/2024/12/image-121.png)

## 6、后续步骤：要求 Windsurf 实施改进

改进：使用 DBOS.logger 代替 print()

![](https://www.hubwiz.com/blog/content/images/2024/12/image-122.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-123.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-124.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-125.png)

改进：尽可能添加 Python 类型声明

![](https://www.hubwiz.com/blog/content/images/2024/12/image-126.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-127.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-128.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-129.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-130.png)

改进：运行 mypy 进行类型检查

![](https://www.hubwiz.com/blog/content/images/2024/12/image-131.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-132.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-133.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-134.png)

改进：重构命名

注意：下面的更改显示了一些巧妙之处：不仅更改了步骤名称，还更改了日志语句和返回字符串值。

![](https://www.hubwiz.com/blog/content/images/2024/12/image-135.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-136.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-137.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-138.png)

改进：创建具有高代码覆盖率的测试

注意：要生成有效的测试用例，我需要提供特定输入。Windsurf 无法识别仍然存在错误，并且 DBOS() 是 main.py 文件的一部分，需要实际调用 DBOS.launch()。

![](https://www.hubwiz.com/blog/content/images/2024/12/image-139.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-140.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-141.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-142.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-143.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-144.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-145.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-146.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-147.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-148.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-149.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-150.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-151.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-152.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-153.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-154.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-155.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-156.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-157.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-158.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-159.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-160.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-161.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-162.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-163.png)

改进：安装最新的 pip

注意：它显示的第一个命令是升级整个系统的 pip，而不是虚拟环境。所以我拒绝了它——而且反应很好，因为它自己就搞清楚了我只想更新虚拟环境。

![](https://www.hubwiz.com/blog/content/images/2024/12/image-164.png)

![](https://www.hubwiz.com/blog/content/images/2024/12/image-165.png)

## 7、方法论

这是我第一次使用 AI IDE 编辑器。然而，在我看来，从方法论的角度来看，最好

- 从一个小的可运行应用程序或逻辑开始
- 通过重构和改进对其进行迭代

听起来不是一个值得注意的见解，但是，他们说：小规模且经常地签入，这似乎是一个很好的起点。

## 8、结束语

第一次使用 Windsurf 时很有趣。我喜欢不断处于循环中的方法以及显示代码中的差异以观察建议的更改的方法。

还有很多可以尝试，例如与 Git 集成或 IntelliJ 插件。让我们看看限制是。

---

原文链接：[Using AI IDE Windsurf from Codeium to generate a minimal DBOS application](https://chbussler.medium.com/using-ai-ide-windsurf-from-codeium-to-generate-a-minimal-dbos-application-61aa2ca598c8?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处