编程

把你想要的
交付出来。

Dvina 在你的电脑上、你的项目里写代码,既看得到笔记和讨论,也知道背后的原因。

周六早晨,食品救济站的侧门旁:一位穿着帆布围裙的志愿者看着手机微笑,胯侧托着一摞压平的纸箱。
食品救济站的排班应用:食品救济站,周六上午 9:00。你已报名。食品救济站的排班应用:食品救济站,周六上午 9:00。你已报名。

我们用 Dvina
打造了 Dvina。

你手机上的应用、桌面应用,还有这个网站,都是在 Dvina 中一轮轮编写、审查并提交的。

从周末做的小应用,到支付核心系统。

理解完整背景

先读笔记,
再写代码。

负责人在笔记里写明,青少年不能报名装卸区的班次。Dvina 先读了笔记,再编写报名规则,让应用按她的要求运行。

关门后,食品救济站后屋里,一位志愿开发者坐在折叠桌旁,身体向后靠着,笔记本电脑半合。上方的手写告示写着:装卸区,限 16 岁及以上。

你的项目规矩,也照办。 它会遵循项目中 AGENTS.md 或 CLAUDE.md 的要求。

上个月的事,也算数。 它会搜索你过去的聊天和文件,把背后的原因一并找出来。

任务协同

它们自己
协调好。

同一代码仓库里的三个任务,会自行决定谁先提交、谁随后变基。你不用从中协调。

Mac 上的同一个聊天中:pantry-shifts 的三个任务,以及它们互相发送的消息(我在处理数据库结构,等我完成后再变基;你先提交,我随后运行代码检查;代码检查通过,我已提交)。Dvina 总结:三个任务都已提交,没有冲突。Mac 上的同一个聊天中:pantry-shifts 的三个任务,以及它们互相发送的消息(我在处理数据库结构,等我完成后再变基;你先提交,我随后运行代码检查;代码检查通过,我已提交)。Dvina 总结:三个任务都已提交,没有冲突。

同一个聊天

就在聊天里,
完成交付。

每个任务的回复都会附上代码改动。就在这里审查、提交,再发起拉取请求。

主聊天中,两个任务的回复附带代码卡片:volunteer-age 分支修改了 3 个文件,显示“改动”和“提交”;csv-export-dates 分支修改了 2 个文件,已提交,显示“审查提交”和“推送并创建拉取请求”。主聊天中,两个任务的回复附带代码卡片:volunteer-age 分支修改了 3 个文件,显示“改动”和“提交”;csv-export-dates 分支修改了 2 个文件,已提交,显示“审查提交”和“推送并创建拉取请求”。
窗边的浅色橡木桌上叠着几张描图纸,最上面一张的一角被掀起,铅笔线条透过层层纸张显现出来。

审查

改主意,
也没关系。

每轮都会列出改动的文件。撤销其中一轮,之后的工作依然保留。

由你批准。

安全防护

关键之处,
格外谨慎。

迁移、部署、推送,以及涉及密钥的操作,都要等你批准。管理员可以设置哪些操作必须先询问。

黎明时分,银行的运营办公区里,支付业务负责人一手抵着下巴,看着笔记本电脑。
运行此命令?npx prisma migrate deploy。会修改数据库。拒绝或允许。运行此命令?npx prisma migrate deploy。会修改数据库。拒绝或允许。

无论身在何处

坐在看台上,
也能提需求。

比赛节间休息时,你让 Dvina 修复 CSV 导出问题。它就在你家中电脑的项目里处理,改动等你审查。你的电脑需要保持开机,并打开 Dvina。

晚间的冰球赛上,一位穿着钴蓝色羽绒服的女子坐在看台上,用手机打字,身后的冰场灯光明亮。

你不点头,
就不会推送。

项目就在你电脑上的文件夹里,借助 Git,Dvina 的每处改动都能撤销。审批默认开启,哪些操作需要先问你,由你决定。

少问几句。<br>多交付一些。

使用编程功能,至少需要在一台电脑上安装 Dvina。其他设备都能发起工作、跟进进展。

继续探索。

有问题?这里有答案。

这是 IDE 吗?
不是。它是 Dvina。你可以在处理其他工作的同一个应用里描述需求、审查代码、完成交付。编辑器还是你熟悉的编辑器,理解需求和背景的工作交给 Dvina。
需要另外安装吗?
不需要。编程功能就在 Dvina 桌面应用里,与你的文档、聊天和记忆都在同一个应用中。
能用于现有项目吗?
可以。把电脑上的文件夹作为项目打开,Dvina 就会结合相关文档和决策一起读懂它。
拉取请求如何提交到 GitHub 或 GitLab?
使用你自己的 Git 登录信息。Dvina 会推送你的分支,并在 GitHub 或 GitLab 上创建拉取请求;对于其他代码托管平台,则会打开该平台的新建拉取请求页面。
哪些操作无需确认就能执行?
构建和测试会直接运行。删除文件、推送、修改数据库、部署,以及任何涉及密钥等敏感信息的操作,都会等你批准。哪些操作需要确认,由你决定。
非开发者也能使用吗?
如果是制作能用的应用和页面,不必用编程功能,创建功能就能完成。编程功能适合开发真正的软件,并希望让完整背景支撑整个开发过程的人。