使用AI编程助手Windsurf创建简易DBOS应用的体验
2024/12/13 21:03:22
本文主要是介绍使用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 使用 “我”,“你”,“我们”,“我们的” 进行交流,它想加入明星团队。
开始:一个详细的指令提示
我的图标,红色指南针(真北,就像笑脸符号一样 :-)),显示我输入的提示内容,其余内容都是 Windsurf 的输出。
改进:在代码中尽可能地添加 Python 类型注解
注意:下面的改动不仅改变了步骤名,还修改了日志信息和返回字符串,显示了巧妙的改动。
注意:为了创建一个有效的测试用例,我在提供具体输入后发现这个问题。Windsurf 没有识别到仍然存在的错误,DBOS()
是 main.py
文件的一部分,并且需要实际调用 DBOS.launch()
。
首先给出的命令是升级整个系统的 pip
,而不是虚拟环境中的。所以我拒绝了这个升级——结果很好,因为它自己判断出我只想更新虚拟环境。
这是我第一次使用AI IDE编辑器,但从方法论的角度来看,最好还是明确后续内容。
- 先从一个小的应用程序或一段逻辑开始,然后通过不断的重构和改进来迭代它。
这听起来不算什么了不起的见解,然而,他们说:经常小步前进,这似乎是一个不错的开始,从细微处做起。
第一次使用 Windsurf 的感觉真棒。我喜欢这种实时互动的方式,以及通过展示代码差异来观察提议的修改的方法。
还有很多可以尝试的,比如与 Git 的集成,或者 IntelliJ 插件的支持。看看能有什么限制。
这篇关于使用AI编程助手Windsurf创建简易DBOS应用的体验的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20自建AI入门:生成模型介绍——GAN和VAE浅析
- 2024-12-20游戏引擎的进化史——从手工编码到超真实画面和人工智能
- 2024-12-20利用大型语言模型构建文本中的知识图谱:从文本到结构化数据的转换指南
- 2024-12-20揭秘百年人工智能:从深度学习到可解释AI
- 2024-12-20复杂RAG(检索增强生成)的入门介绍
- 2024-12-20基于大型语言模型的积木堆叠任务研究
- 2024-12-20从原型到生产:提升大型语言模型准确性的实战经验
- 2024-12-20啥是大模型1
- 2024-12-20英特尔的 Lunar Lake 计划:一场未竟的承诺
- 2024-12-20如何在本地使用Phi-4 GGUF模型:快速入门指南