人工智能学习

使用AI编程助手Windsurf创建简易DBOS应用的体验

本文主要是介绍使用AI编程助手Windsurf创建简易DBOS应用的体验,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

看妈妈,单手操作!

目标

我计划创建一个最小化的无头DBOS(https://www.dbos.dev/)应用程序作为入门示例,以便开始使用Codeium(https://codeium.com/)提供的AI IDE Windsurf(https://codeium.com/windsurf)。

序言

以下准备工作已经完成:

  • 我创建了一个叫做 minimal-dbos 的目录
  • 我的笔记本电脑上正在运行一个本地的 PostgreSQL 数据库系统,并使用了默认的连接参数;否则,启动 DBOS 时会抛出异常(https://github.com/dbos-inc/dbos-transact-py/issues/150)
  • 我从 Codeium 安装了 Windsurf 的默认设置,目前还没有订阅,因为我刚开始使用 Windsurf
观察记录:

请参见下方我与Windsurf的所有操作和互动记录——虽然内容较长,但其中充满了有趣的细节,我保证,绝对值得一读。

这里是我一路上的一些发现

  • 可以完全通过 Windsurf 的聊天/代理类似的功能与之互动,而无需直接操作代码。
  • 可以使用一个复杂的指令,带有相当详细的说明,这在开始阶段就能完成很多工作。
  • Windsurf 会解释它正在做什么,并在过程中进行总结;这是一个很好的功能,有助于你跟踪交互。
  • 它明确要求用户确认终端命令的执行。下面的日志中不再包含明确的执行命令请求(现在提供按钮供用户接受或拒绝命令),只显示在按下其中一个按钮后命令执行的结果,而不再显示确认请求。

  • Windsurf 能检测到环境中的问题,例如新的 pip 版本是否可用
  • 识别并修复错误。更关键的是,它不会因为遇到第一个错误就放弃,而是会继续修复自己的错误,这真的挺令人印象深刻!
  • 它还能运行外部脚本,比如 mypy
我的最初想法

为了达到这个更复杂的初始提示的要求,我不得不提供一些特定的信息,这些是Windsurf无法自行推断的,例如,需要在应用启动时调用DBOS.launch()DBOS.destroy()。我必须在提示中提供这些关键信息,因为Windsurf自己无法确定这些内容。

提供包的请注意,尽量提供更多的文档,以便学习能掌握尽可能多的细节。

而且这里就是挑战或风险:我不得不帮助Windsurf处理提示中的具体需求。这需要我知道这些细节,而这些细节是我几周前通过手动搭建一个DBOS应用程序才学到的。我想知道如果没有之前的了解,我怎么才能完成一个运行的应用程序。

以下是我在使用Windsurf时的第一个完整日志。真是太有趣了,我愉快地承认。正如你可能想到的,你可以不停地要求更多的改进和新功能,等等,这既好玩又有动力。

一个小观察:Windsurf 使用 “我”,“你”,“我们”,“我们的” 进行交流,它想加入明星团队。

创建最简单的 DBOS 应用程序及其测试用例的完整日志

开始:一个详细的指令提示

我的图标,红色指南针(真北,就像笑脸符号一样 :-)),显示我输入的提示内容,其余内容都是 Windsurf 的输出。

自动生成的代码(完全没有手动干预过)
目录

main.py

dbos配置文件

下一步:叫 Windsurf 做些改进。
改进:用 DBOS.logger 替换 print()

改进:在代码中尽可能地添加 Python 类型注解

优化:运行 mypy 做类型检查

改进:优化命名

注意:下面的改动不仅改变了步骤名,还修改了日志信息和返回字符串,显示了巧妙的改动。

改进:编写广泛的代码覆盖测试

注意:为了创建一个有效的测试用例,我在提供具体输入后发现这个问题。Windsurf 没有识别到仍然存在的错误,DBOS()main.py 文件的一部分,并且需要实际调用 DBOS.launch()

改进:安装最新版的pip

首先给出的命令是升级整个系统的 pip,而不是虚拟环境中的。所以我拒绝了这个升级——结果很好,因为它自己判断出我只想更新虚拟环境。

方法

这是我第一次使用AI IDE编辑器,但从方法论的角度来看,最好还是明确后续内容。

  • 先从一个小的应用程序或一段逻辑开始,然后通过不断的重构和改进来迭代它。

这听起来不算什么了不起的见解,然而,他们说:经常小步前进,这似乎是一个不错的开始,从细微处做起。

总结

第一次使用 Windsurf 的感觉真棒。我喜欢这种实时互动的方式,以及通过展示代码差异来观察提议的修改的方法。

还有很多可以尝试的,比如与 Git 的集成,或者 IntelliJ 插件的支持。看看能有什么限制。

这篇关于使用AI编程助手Windsurf创建简易DBOS应用的体验的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!