我的目标是创建一个最小的无头 DBOS 应用程序作为示例,以开始使用 Codeium 的 AI IDE Windsurf。以下是我在使用 Windsurf 过程中的详细体验。
1. 准备工作
在开始之前,我做了以下准备工作:
- 创建了一个名为
minimal-dbos
的目录。 - 在我的笔记本电脑上本地运行 PostgreSQL 数据库系统,使用默认连接参数值;否则 DBOS 当前将在启动时引发异常。
- 安装了 Codeium 的 Windsurf 默认安装,暂时没有订阅,因为这是我首次使用 Windsurf。
2. 使用 Windsurf 的初步观察
以下是我在使用 Windsurf 时的一些关键观察:
- 交互性强:可以与 Windsurf 的聊天/代理功能进行完全交互,且不受代码限制。
- 复杂提示:可以使用复杂的提示并附带详细说明,这在开始时可以完成很多工作。
- 功能总结:Windsurf 会解释其功能并进行总结,这有助于跟踪交互。
- 命令确认:它明确要求用户确认终端命令的执行。日志中只包含按下按钮后的执行结果。
- 环境检测:Windsurf 能够检测环境中的问题,例如 pip 的新版本可用。
- 错误修复:识别并修复错误,甚至在第一次错误后继续尝试修复,非常令人印象深刻!
- 外部脚本:可以运行外部脚本,例如
mypy
。
3. 初步想法
为了获得更复杂的初始提示,我需要提供 Windsurf 无法自行解决的特定输入,例如在应用程序启动时必须调用 DBOS.launch()
和 DBOS.destroy()
。我必须在提示中提供一些关键知识,因为 Windsurf 无法自行确定这一点。
软件包提供商的注意事项:应提供尽可能多的文档,以便学习过程尽可能多地了解细节。
挑战或风险如下:我必须在提示中帮助 Windsurf 提供具体信息。这要求我了解具体细节,以及几周前通过手动构建 DBOS 应用程序学到的知识。我想知道如果没有事先的知识,我将如何获得一个可以运行的应用程序。
4. 创建最小 DBOS 应用的完整日志
开始:一个复杂的提示,详细说明我的指示。
我的图标,红色指南针(真北 :-)),显示我输入的提示,其他所有内容都是 Windsurf 提供的输出。
5. 生成的代码(无需任何更改)
目录
main.py
dbos-config.yaml
6. 后续步骤:要求 Windsurf 实施改进
改进:使用 DBOS.logger 代替 print()
改进:尽可能添加 Python 类型声明
改进:运行 mypy 进行类型检查
改进:重构命名
改进:创建具有高代码覆盖率的测试
改进:安装最新的 pip
7. 方法论
这是我第一次使用 AI IDE 编辑器。然而,在我看来,从方法论的角度来看,最好是:
- 从一个小的可运行应用程序或逻辑开始。
- 通过重构和改进对其进行迭代。
听起来不是一个值得注意的见解,但是,他们说:小规模且经常地签入,这似乎是一个很好的起点。
8. 结束语
第一次使用 Windsurf 时很有趣。我喜欢不断处于循环中的方法以及显示代码中的差异以观察建议的更改的方法。还有很多可以尝试,例如与 Git 集成或 IntelliJ 插件。让我们看看限制是。