AI编程从 “猜你想要” 到 “精准生成”, 基于Qoder的Spec驱动开发初探.

解决的问题

用了几款AI的IDE (cursor、qoder 等) 编程, 基本遇到几个核心问题

  • 很难准确描述你的功能, 完全靠AI去猜测不停的补充细节. 如: 做个登录功能, AI容易自由发挥, 你得在补充是否有验证码、是否支持手机登录、密码是否限制等.
  • 由于token的限制, AI容易又忘记了前面的沟通内容, 又得重新强调一遍. 如果使用压缩对话, 那细节可能被丢失, AI忘记后, 又容易重新把原来改好的细节给改错, 导致来回拉扯

本质上是一种解释性的协助, Spec-Driven Development 是一种基于规范驱动开发 ( 或者契约式开发的模式);

什么是Spec-Driven Development 呢

开发都始于一份严格对齐的Spec文档, 所有代码、测试、架构都必须要严格准守, 后续变更也是通过Spec来驱动, 而非去改代码. 包括自动化工具也是基于Spec去生成代码、测试用例等.

简单来说, 后续程序员主要工作在于制定Spec文档, 代码实现由AI来完成.

基于Qoder的实现方式选择

最近都改用Qoder了 ( 主要性价比可以, 当前一月2美金 , 实践下来也够用了, cursor平替)

  1. 用Qoder自带的Quest Mode 去实现, 适合个人探索, 无需安装额外的MCP插件
  2. 通过 spec-workflow-mcp插件. 适合团队项目, 当前推荐的几个mcp , 基于开源的, 如:https://github.com/Pimzino/spec-workflow-mcp

用Qoder实现 Spec-Driven Development模式

新建任务, 进入 Quest Mode

打开Qoder 选择 Quest Mode . 新建个任务

输入

复制代码
请帮我构建一个简单的开源项目介绍网站

- 前端使用 React + Next.js
- UI 使用简洁的卡片式布局,支持添加、标记完成、删除任务
- 后端使用 Spring Boot + jdk 8 基于MVC的架构 
- 数据暂时保存在内存中(不需要数据库)
- 前后端分离,通过 HTTP 通信

功能上
- 先从固定github上采集最活跃的Top10的开源项目, 并在首页显示
- 不需要管理后台, 只需要10分钟更新采集一次数据展示

生成相关设计文档

qoder开始和我交互确认细节, 问答模式, 开始选择细节

回答完成后, 开始根据细节, 生成设计文档

看完设计文档, 截图几个, 比我亲自画还好

开始实施任务

文档好了, 开始写相关任务

完成任务

访问效果

需求变更

如果我后续将进行需求变更, 需要再增加一个新的任务, 提出了变更

复制代码
对当前的需求进行变更, 把显示3个项目变成只显示两个项目, 并采集任务增加到12个

收到后, 它开始检查了历史文档, 任务, 并新建了个新的markdowm

修改后的效果

整体思考

以后的开发流程是否会变为

  • 程序员提出意图
  • AI配合梳理,通过对话、梳理和需求
  • 生成最终Spec文档, 程序对spec文档进行确认
  • AI完成任务执行.

整个流程上, 等于给程序员配上了一个外包干活, 更多精力花在整体架构、和业务流程的思考上了.

将来是否会成为以后的主流模式呢?

对于历史的老旧项目是否也适用呢?

很多代码都有历史原因, 如果只出文档, 完全交给AI修改, AI是否能理解其中的每一段祖传的 if 呢, 这个风险还是太高, 期待进一步的发展.