基于 Harness + SDD + 多仓管理模式的 AI 全栈开发实践|得物技术¶
Ch05.055 基于 Harness + SDD + 多仓管理模式的 AI 全栈开发实践|得物技术¶
📊 Level ⭐⭐ | 7.8KB |
entities/harness-sdd-duiwu-ai-fullstack-dewux.md
基于 Harness + SDD + 多仓管理模式的 AI 全栈开发实践|得物技术¶
一、核心理念:Harness 思维 — 让 AI 模仿,而不是凭空创造¶
全栈 SDD 开发中,最常见也最致命的错误是:让 AI 从零开始写代码。AI 模型具备"通识能力",给它一个需求描述,它确实能生成可运行的代码。但问题在于,这些代码往往是"外星代码":
- 风格不一致(命名规范、目录结构、分层方式与项目现有代码不同)
- 复用率低(没有利用项目已有的公共组件、工具函数、请求封装)
相关实体¶
- 告别氛围编程基于 Harness 治理和 Sdd 的团队级 Ai 研发范式演进与实践
- Wow Harness V3 Governance Protocol
- Ai Production Development Workflow Openspec Superpowers Gstack
- Stepan Gershuni Ai Native Startup Guide
- Oz Multi Harness Cloud Agent Orchestration
→ 原文存档
深度分析¶
1. Harness 思维的本质是"约束导航"而非"自由生成"
全栈 SDD 开发中最大的认知陷阱是把 AI 当作"灵感生成器"。得物经验的精髓在于:给 AI 一个已有的实现作为参照,让它照着复刻一份。从工程角度,这意味着你需要在代码库中主动找到最相似的已有实现,并在提示词中明确指定参考文件、接口路径和数据结构。这种"约束导航"的思路将 AI 生成的质量从"看缘分"变成"看上下文密度"。约束越精准,生成代码的采纳率越高,Review 成本越低——这直接解释了为什么凭空生成代码往往在 Code Review 阶段被大量打回。
2. 多仓工作区是 AI 全栈开发的上下文基础设施
前后端代码分仓是常态,但 AI 全栈开发的效率瓶颈恰恰在于"跨仓上下文断裂"。将两个仓库放在同一工作区后,Cursor 的 Codebase Indexing 能对工作区内所有代码进行向量化嵌入,使 AI 同时具备前后端视角。这意味着接口字段命名自然对齐、分层方式一致、数据结构前后对应。从实测对比来看,Cursor 在语义索引速度上显著优于 Claude Code,但 Claude Code 在长链路复杂任务中依赖卓越基础模型表现更稳。关键洞察是:多仓工作区不只是目录层面的合并,它是 AI 全栈开发者的"共享大脑"。
3. SDD 不仅是文档,而是 AI 与人类之间的"接口契约"
得物经验的独特之处在于:SDD 在这里不只是需求澄清工具,它是前后端 AI Agent 之间的强制对齐机制。两份 SDD 文档(前端一份、后端一份)通过接口契约和字段映射严格对应,任何不一致都会在 SDD Review 阶段被发现,而不是等到联调阶段。这种"前置于编码的对齐"从根本上降低了返工成本。openspec-propose → openspec-apply-change → openspec-archive-change 的工作流,本质上是让 AI 在一个规范化的状态机中执行,减少了 AI"自由发挥"的空间。
4. Subagent 模式将"全栈"从单兵作战变成并行工厂
Claude Code 的 Subagent 模式允许将前端、后端、Mock 三个角色注册为独立子 Agent,主 Agent 负责任务分解和调度,子 Agent 负责具体执行。这是工程组织原理在 AI 编程中的直接映射:专业分工 + 并行执行。model: sonnet 用于前端和后端代码生成(能力与速度平衡),model: haiku 用于 Mock 数据生成(成本最优)。这种分层模型选型策略,避免了在所有任务上使用最强模型的资源浪费,是 AI 工程化的重要体现。
5. 三阶段验证策略将 AI 生成的"不确定成本"前置化
AI 生成代码的最大风险不是功能错误,而是"看起来对但隐性行为不对"。三阶段验证(前端 Mock 验证 → 后端独立编译 → 前后端联调)的精髓在于:每一阶段都在一个低依赖的环境中验证核心假设。前端 Mock 自测意味着不依赖后端即可验证 UI 逻辑;mvn clean compile 验证意味着不需要完整启动服务即可验证编译正确性;联调阶段才真正验证端到端数据流。这种分阶段前置验证的策略,是将 AI 的不确定性约束在可控范围内的关键工程实践。
实践启示¶
1. 在给 AI 任何编码任务前,先强制执行"找相似实现"步骤
不要直接描述需求功能,而要先在代码库中定位功能最相似的已有实现,明确在提示词中写出参考文件路径、参考接口和数据结构。这一步的投入会直接决定后续代码的采纳率。工具建议:使用 grep 或 IDE 语义搜索找到相似代码,将关键片段作为提示词上下文输入。
2. 建立多仓工作区,将前后端代码在目录层面纳入同一语义空间
前端和后端工程师通常各自维护仓库,但 AI 全栈开发要求 AI 同时具备双端视角。在本地工作区建立符号链接或直接将双仓 checkout 到同一父目录下,为 AI 工具(Cursor / Claude Code)提供跨仓语义索引能力。这是 SDD 驱动开发的前提条件,也是 AI 全栈效率提升的第一杠杆。
3. 将 SDD 作为前后端 AI Agent 的强制对齐检查点,而非可选项
在开始编码前,要求 AI 输出前后端两份 SDD 文档,核对接口路径、HTTP 方法、请求/响应字段名是否完全对应。只有对齐检查通过后才能进入 openspec-apply-change 阶段。这个机制可以将大量联调阶段才发现的接口不一致问题,提前到设计阶段解决。
4. 对复杂任务使用 Subagent 模式,并为每个子 Agent 指定专用模型
将前端、后端和 Mock 角色注册为独立子 Agent,使用 model: sonnet 进行代码生成(能力和速度平衡),使用 model: haiku 进行数据生成(成本最优)。主 Agent 负责任务分解和进度调度,子 Agent 负责具体执行。这种分层架构使 AI 全栈开发从"单兵串行"变为"团队并行"。
5. 始终按三阶段验证顺序推进,不要跳过前两个阶段直接联调
每一阶段都在最低依赖环境中验证核心假设:前端 Mock 验证 UI 逻辑 → 后端编译验证代码正确性 → 联调验证端到端数据流。不要因为赶时间而跳过前端 Mock 阶段或后端编译验证——这些前置检查是 AI 生成代码的"低成本排雷区",等到联调阶段才发现问题的返工成本远高于此。