码道Spec-Driven模式快速开发运动健康App

一、引言

谈到Spec-Driven规范驱动开发模式,不少开发者可能有顾虑:难道这是让我回到古法编程,要先写个需求分析和系统设计文档吗?其实大可不必,我们可以套娃AI,让AI自己生成spec,然后再按它自己生成的spec去规范它的代码开发。虽然仍是一句话编程,但多了这个spec规范生成的过程后,我们可以让Vibe Coding的目标更精确可控。如下是一个运动健康应用的spec-driven开发示例。

二、项目背景

随着健康意识的提升,越来越多的人开始关注运动健康。用户需要一个能够记录运动数据、提供健康建议、设置运动目标的移动应用。作为开发者,我虽然有华为云MaaS的API Key,但对运动健康领域的业务逻辑不太熟悉,希望借助码道的Spec-Driven模式快速开发一个功能完善的运动健康App。

三、Spec-Driven开发流程

1. 初始Prompt输入

在码道里选择spec开发模式,输入初始Prompt:

```
我想开发一个运动健康App,主要功能包括:

  1. 运动数据记录(步数、距离、卡路里消耗)
  2. 健康数据监测(心率、睡眠、体重)
  3. 运动计划制定和提醒
  4. 健康建议和数据分析
  5. 社交分享功能

我有华为云MaaS的API Key,希望利用大模型生成个性化的健康建议。请帮我先生成一个详细的spec,我审核质量OK后,再启动开发。
```

2. Spec文档生成

码道回复:
1)生成了spec.md,详细展开了需求:

运动健康App需求规格说明书

项目概述

  • 应用名称:FitLife运动健康助手
  • 目标用户:关注健康的普通用户、运动爱好者
  • 核心价值:一站式运动健康管理,AI个性化建议

功能模块

  1. 用户管理模块

    • 用户注册/登录
    • 个人信息设置(年龄、性别、身高、体重)
    • 健康目标设定
  2. 运动数据模块

    • 步数统计(支持手动输入和自动同步)
    • 运动类型记录(跑步、骑行、游泳、健身等)
    • 距离、时长、卡路里计算
    • 运动轨迹记录(GPS)
  3. 健康监测模块

    • 心率监测(连接设备或手动输入)
    • 睡眠质量记录
    • 体重变化趋势
    • 饮水提醒
  4. AI健康助手模块

    • 基于MaaS大模型的个性化运动建议
    • 饮食推荐
    • 训练计划生成
    • 健康风险评估
  5. 社交功能模块

    • 运动成就分享
    • 好友排行榜
    • 运动圈子
  6. 数据可视化模块

    • 图表展示运动数据
    • 健康趋势分析
    • 成就徽章系统

技术架构

  • 前端:React Native(跨平台)
  • 后端:Node.js + Express
  • 数据库:MongoDB
  • AI服务:华为云MaaS API
  • 第三方集成:设备健康数据API

3. 设计文档生成

选择"进入下一阶段开发",提交后,码道先生成design.md,这是详细设计文档,包含了技术架构和具体模块和函数接口:

系统架构设计

  • 分层架构:表现层、业务逻辑层、数据访问层
  • 模块划分:UserService、ActivityService、HealthService、AIService、SocialService
  • API接口设计:RESTful API规范
  • 数据库设计:用户表、运动记录表、健康数据表、社交关系表

UI/UX设计

  • 主色调:健康绿+活力橙
  • 首页布局:数据概览卡片、快捷操作、今日目标
  • 导航结构:底部Tab导航(首页、运动、健康、社交、我的)

4. 代码开发阶段

设计文档生成后,码道就开始基于需求文档和设计文档来进行编程了:

码道自动创建了项目结构:
```
fitlife-app/
├── src/
│ ├── components/ # 可复用组件
│ ├── screens/ # 页面组件
│ ├── services/ # API服务
│ ├── utils/ # 工具函数
│ └── assets/ # 静态资源
├── package.json
├── App.js
└── README.md
```

主要功能实现:

  • 用户认证系统(JWT token管理)
  • 运动数据采集和存储
  • 图表组件(使用Victory Native)
  • AI服务集成(华为云MaaS调用)
  • 推送通知(运动提醒)

5. 配置MaaS API

码道把代码写完后,提示了我们需要配置MaaS的API Key,我们去MaaS平台获取三个关键参数(不限于华为云MaaS,别的云厂商MaaS平台也类似):模型服务URL,API KEY,模型ID。

在华为开发者空间里有个优惠活动,1元钱1千万token,活动地址:https://developer.huaweicloud.com/space/incentive/other-activity/deepSeek-r1-v3/detail/A000044

我们获得了这三个参数后,在码道对话框输入进去:

```
我的华为云MaaS参数如下:
url = “https://api.modelarts-maas.com/v1/”
api key = “mpJspx1DPwhPIWUC2ZpBaU-xxxx”
model_id = “deepseek-v3.2”

请帮我直接配置到代码里去
```

码道可以自动修改好配置代码,在`src/services/aiService.js`中添加了MaaS配置:

```javascript
const maasConfig = {
baseURL: “https://api.modelarts-maas.com/v1/”,
apiKey: “mpJspx1DPwhPIWUC2ZpBaU-xxxx”,
modelId: “deepseek-v3.2”
};
```

6. 启动应用测试

最后我们可以按照码道给的"如何启动应用"提示,输入npm命令来启动应用。当然,我们也可以连启动命令都懒得输入,让码道自己启动应用吧:

```
请帮我启动应用,并打开浏览器
```

码道执行命令:
```bash
cd fitlife-app
npm install
npm start
```

浏览器会被自动打开,页面能看到应用界面。

7. 功能测试与优化

我们来测试一下核心功能:

运动记录测试
点击"开始运动"按钮,选择"跑步",开始记录。码道自动生成了GPS轨迹记录功能,可以实时显示跑步路线、距离和配速。

健康建议测试
在健康页面输入今天的运动数据:跑步5公里,心率平均140,睡眠7小时。点击"获取健康建议",AI助手返回:

```
根据您的运动数据,建议:

  1. 今日运动量适中,建议补充500ml水分
  2. 心率控制良好,保持在燃脂区间
  3. 睡眠质量可以,建议保持规律作息
  4. 明天可以尝试间歇训练:快跑1分钟+慢跑2分钟,重复5组
    ```

发现问题与优化
但我们发现一个问题,AI建议比较通用,没有考虑用户的个人健康数据。因此我们需要给码道发送修正请求:

```
健康建议需要结合用户的个人健康档案(年龄、性别、体重、基础代谢率)来提供个性化建议。请修改AI服务调用逻辑,在请求中带上用户健康数据。
```

码道自动修改了AI服务调用代码,增加了用户健康数据参数:

```javascript
async function getPersonalizedAdvice(userData, activityData) {
const prompt = `作为健康顾问,请为以下用户提供运动建议:
用户信息:${userData.age}岁,${userData.gender},体重${userData.weight}kg,身高${userData.height}cm
今日运动:${activityData.type} ${activityData.distance}公里,时长${activityData.duration}分钟
请提供个性化的运动建议和饮食推荐。`;

return await callMaaS(prompt);
}
```

8. Skill功能体验

接下来我们熟悉一下skill功能,先开发一个skill吧,我们也让码道来为自己打造武器,新打开一个码道窗口,输入prompt:

```
开发一个skill技能,可以分析用户的运动数据趋势,预测未来一周的运动表现
```

我们把这个skill拷贝到前面开发的运动健康项目skill目录里,然后在码道对话框里使用这个skill,输入prompt:

```
用运动趋势分析skill分析用户最近30天的运动数据
```

四、技术亮点

1. Spec-Driven开发优势

  • 需求明确化:通过AI生成的spec,确保需求完整无遗漏
  • 设计规范化:自动生成的设计文档保证了架构合理性
  • 开发高效化:基于spec和design的代码生成,减少返工

2. MaaS集成创新

  • 个性化健康建议:基于用户数据的AI定制化建议
  • 智能运动计划:根据用户能力和目标生成训练方案
  • 健康风险预警:异常数据检测和预警提醒

3. 技能生态扩展

  • 可复用Skill:运动趋势分析、饮食推荐算法等
  • 社区共享:可以将开发的Skill发布到码道社区
  • 持续迭代:基于用户反馈不断优化AI模型

五、总结

通过码道的Spec-Driven模式,我们仅用几句话的描述就快速开发出了一个功能完整的运动健康App。整个过程体现了"人机协同,将想法转化为现实"的理念:

  1. 需求阶段:一句话描述需求 → AI生成详细spec
  2. 设计阶段:审核spec → AI生成详细设计文档
  3. 开发阶段:基于spec和design自动编码
  4. 配置阶段:一键配置MaaS等第三方服务
  5. 测试优化:持续对话,实时调整和优化
  6. 技能扩展:开发专用Skill,提升开发效率

这种开发模式不仅适用于运动健康App,还可以扩展到电商、教育、企业应用等各个领域。码道的Spec-Driven模式真正实现了"不写代码,写未来"的愿景,让开发者能够更专注于业务逻辑和创新,而不是重复的编码工作。

华为云码道(CodeArts)代码智能体,一个理解项目需求,懂得编码之道,善用百器的实干派AI研发专家,开启你的编码自动驾驶模式!


注:本文为华为云码道(CodeArts)代码智能体的实际应用案例,展示了如何利用Spec-Driven模式快速开发运动健康类应用。所有功能均基于真实可用的码道平台实现。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐