--- title: 基于 Harness + SDD + 多仓管理模式的 AI 全栈开发实践 source: https://mp.weixin.qq.com/s/ygQGSH5c7GHYDvkqWoQTXQ author: 盖伦 / 得物技术 date: 2026-05-06 tags: - AI开发 - 全栈 - SDD - Harness - Cursor - ClaudeCode --- # 基于 Harness + SDD + 多仓管理模式的 AI 全栈开发实践|得物技术 ## 一、核心理念:Harness 思维 — 让 AI 模仿,而不是凭空创造 ### 全栈AI开发最容易踩的坑 让AI从零开始写代码产生"外星代码":风格不一致、复用率低、采纳率低。AI生成了代码,但Review成本和返工成本反而更高了。 ### Harness 思维的核心:给 AI 一个"模仿对象" 给AI一个已有的实现作为参照,让它照着复刻一份,而不是凭空创造。 **四条原则:** | 原则 | 说明 | 举例 | |------|------|------| | 找相似实现 | 在代码库中找到功能最相似的已有实现作为参照 | "结束语"参照"场景化欢迎语" | | 复用优先 | 能复用的组件、接口封装、数据结构直接复用 | 复用greetingExtendInfo数据结构 | | 模仿着复制 | "抄一份改一改"比用新方式好 | Controller/Service/Repository按已有模仿 | | 约束生成范围 | 提示词中明确指定参考文件/参考接口 | 前端修改入口@FeatureTable/index.tsx:53-58 | ### 提示词体现 Harness - ❌ 不推荐:`请实现一个结束语管理的 CRUD 接口` - ✅ 推荐:明确指定参考文件、数据结构和接口路径,如"参照场景欢迎语功能(后端/api/v1/feature/list,前端FeatureTable/index.tsx:53-58)实现" ## 二、全栈工作区搭建与 Codebase Indexing 将前后端代码放在同一个工作区下的三个核心价值: 1. **Codebase Indexing**:Cursor对工作区内所有代码进行向量化嵌入建立语义索引,AI能跨仓库理解代码关系 2. **上下文完整**:AI同时能看到前后端代码,接口字段、命名风格自然对齐 3. **SDD文档集中管理**:前后端SDD文档在同一工作区,便于接口契约对齐 ### Cursor vs Claude Code 实测对比 | 功能维度 | Cursor | Claude Code | |---------|--------|-------------| | 代码库语义索引 | 支持grep+语义检索,速度快 | 仅支持grep,依赖模型能力 | | 代码生成速度 | 极速,平均1-3分钟 | 中速,平均3-30分钟 | | 代码采纳率 | 两者相当 | 两者相当 | | 文件/代码段引用 | 快捷键、拖拽即可引用 | 需手动@文件路径,无法引用代码段 | | 多Agent | 默认开启(多Tab并行) | 需手动注册子Agent | | 费率模型 | 失败任务不收费 | 失败任务耗时长,容易浪费Token | | 历史会话恢复 | 仅能查看当前项目会话记录 | 可查看全局会话记录 | | 综合评价 | 快速迭代首选,推荐Composer2模式 | 长链路复杂任务可用 | ## 三、SDD 驱动的全栈代码生成流程 - 全栈SDD需同时覆盖前后端 - 提示词编写范式:明确需求、参考实现、数据结构、接口契约 - 前后端需求点清单分工示例 - SDD文档产出与指令使用说明 ## 四、多 Agent 协作:前后端并行开发 - Cursor中使用多Tab并行(默认开启) - Claude Code中使用Subagent能力(需手动注册) - 建议:前端Agent专注UI/交互,后端Agent专注API/数据 ## 五、前后端联调:Mock 数据与分阶段验证 - 三阶段验证策略 - Mock数据编写要点 - 后端独立构建验证 - 前后端联调步骤 ## 六、警惕 SDD 陷阱:测试如何介入全栈研发 - SDD不等于需求文档 - 关注隐性功能(异常处理、边界情况、性能要求) - 测试应尽早介入 ## 七、综合效益与总结 核心公式:**Harness(约束) + SDD(规格) + 多仓(上下文) = 高质量AI全栈代码**