代码价值存在于提交之间的协作
速览
文章指出软件开发的核心价值不仅仅体现在代码提交上,更在于提交之间的协作过程。这种协作包括团队沟通、代码审查以及知识共享,是确保软件质量和项目成功的关键因素。忽视这些非代码活动可能导致项目效率低下和沟通障碍。
AI 深度解读
Software Is Made Between Commits:Zed 团队重新定义协作与版本控制
背景
长期以来,软件开发中的协作模式深受 Git 工作流的影响,尤其是基于 Pull Request(PR)的审查机制。在 AI Agent 尚未普及之前,这种通过“快照”交换评论的仪式化流程被视为一种有效的协作方式。然而,Zed 团队发现,这种模式并不适合他们高效、实时的协作习惯。他们更倾向于在同一 worktree(工作树)中共同工作,通过在编写代码时即时讨论来建立信任和共享理解。
GitHub 等平台强制要求开发者在 commit(提交)和 push(推送)之后才能针对代码进行讨论,但这往往导致最重要的对话在代码被“固化”之前就已经结束。随着 AI Agent 在软件开发中扮演越来越重要的角色,这种滞后于代码变更的沟通方式显得愈发捉襟见肘。Zed 团队在 2021 年创立 Zed 编辑器时,初衷就是突破 commit 带来的限制,构建一个适合顶级开发者协作的环境。如今,他们发现,随着 AI 参与度的加深,解决人类与人类、人类与 Agent 之间协作问题的紧迫性甚至超过了以往。
核心内容
Zed 团队正在构建一种全新的版本控制系统,名为 DeltaDB。其核心理念是:软件是在 commit 之间的对话中诞生的,而非在 commit 本身。
1. 从“快照”到“细粒度增量”
传统的 Git 在每个 commit 处捕获代码的快照,而 DeltaDB 将工作分解为细粒度的增量(deltas)流。它不仅记录 commit,还捕获 commit 之间的每一个操作,并为每个操作赋予稳定的身份标识。这意味着,即使代码仍在不断变化,开发者也可以指向代码演化过程中的任意时刻。这使得版本控制可以与驱动代码演变的对话过程同步进行。
2. 对话与代码的共生记录
在 DeltaDB 中,一条消息及其产生的代码编辑被并排记录。这种设计确保了对话上下文与代码变更不会脱节。DeltaDB 内置了无冲突复制工作树(conflict-free replicated worktrees),允许不同机器上的多个人和 Agent 同时编辑相同的文件。这些文件是真实的:Agent 通过终端在其中工作,开发者也可以随时将整个 worktree 挂载到磁盘,以便使用自己的本地工具进行操作。
3. 源代码即源对话
由于所有引用都锚定在 delta 上而非行号上,当代码发生移动或重构时,引用依然有效。
- 从对话到代码:从过去对话中的任意一行,可以跳转到该代码当前的状态,或者跳转到 Agent 编写它时的状态。
- 从代码到对话:从任意一行代码,可以回溯到产生它的对话,以及自那以后所有触及该代码的对话。
- Agent 的上下文感知:Agent 可以利用这些历史记录,了解其所操作代码背后的上下文,或者召集之前处理过该代码的其他 Agent,询问其设计初衷。
4. 消除协作仪式
Zed 团队的目标是简化协作:与 Agent 的对话成为唯一的必要对话。队友可以在工作尚未完成时加入,直接与执行工作的 Agent 交流并进行标注,无需等待开发者先 commit 和 push。Pull Request、审查线程和内联评论的存在,本质上是因为讨论和代码曾处于分离的状态。当两者合二为一,这些繁琐的仪式便不再必要。Git 和 CI(持续集成)将继续保留,用于执行检查和连接外部世界,而非强制承载协作过程。
关键要点
- 协作重心转移:软件生成的真正源头是持续的对话过程,而非离散的 commit 快照。
- DeltaDB 架构:一种基于单一连贯抽象的新版本控制系统,将对话与 Agent 编辑的工作树转化为共享工件。
- 细粒度追踪:记录每一个操作而非仅记录 commit,赋予每个增量稳定的身份,支持对代码演化任意时刻的引用。
- 实时协作能力:支持多用户和 Agent 跨机器同时编辑同一文件,通过无冲突复制机制解决冲突。
- 双向追溯:实现从代码行到生成它的对话、以及从对话到当前/历史代码状态的双向无缝跳转。
- Agent 上下文增强:Agent 可访问代码变更的历史对话,理解代码背景和设计决策,提升协作智能。
- 去仪式化协作:消除对 Pull Request 和事后审查的依赖,实现“边写边聊”的实时协作体验。
- Git 角色重新定位:Git 和 CI 不再作为协作的主要载体,而是回归其本质功能:运行检查和集成外部系统。
- 产品进展:DeltaDB 已完成大量开发工作,预计几周后推出 Beta 版本,并开放早期用户候补名单。
意义与影响
Zed 团队提出的 DeltaDB 不仅是对版本控制工具的技术升级,更是对软件开发生命周期中协作范式的根本性重构。
首先,它解决了 AI 时代下“人机协作”的上下文断裂问题。随着 Agent 深度参与编码,传统的“人写代码 -> 人审查”模式已无法适应“人指挥 Agent -> Agent 生成代码 -> 人实时反馈”的新流程。DeltaDB 通过将对话与代码变更紧密绑定,确保了 AI 生成的每一行代码都有迹可循,且其背后的意图和讨论过程可被完整追溯。
其次,它挑战了 Git 作为唯一协作中心的地位。Git 的设计初衷是支持分布式版本管理,而非实时协作。在实时协作和 AI 辅助编程成为主流的今天,强制开发者通过 commit 来固化中间状态,不仅效率低下,还容易丢失重要的决策上下文。DeltaDB 的出现标志着版本控制工具从“记录历史”向“支持过程”的转变。
最后,这一理念预示着未来开发工具链的演变。当“源代码即源对话”成为现实,代码库将不再仅仅是可执行的指令集合,而是一个包含丰富决策逻辑、讨论历史和上下文信息的动态知识图谱。这将极大地降低新成员的理解成本,提升团队协作效率,并为 AI Agent 提供更丰富、更结构化的上下文,从而推动软件生产力的进一步提升。
