示例项目
实战示例项目,展示从规范到代码的完整工作流。
电商 MVP 项目
参考 OpenSpec-practise 的电商场景,我们提供两套实现:
项目概述
一个简单的电商系统,包含:
- 商品管理(查询、创建)
- 购物车(添加、删除、查询)
- 订单(创建、查询)
多语言实现
| 语言 | 框架 | 目录 |
|---|---|---|
| Node.js | Express | examples/ecommerce-nodejs/ |
| Python | FastAPI | examples/ecommerce-python/ |
规范驱动
两套实现共享同一套 OpenSpec 规范:
openspec/
└── changes/
└── v1-mvp/
├── proposal.md
├── design.md
├── specs/
│ ├── api/spec.md
│ └── domain/spec.md
└── tasks.md学习目标
通过本项目,你将学习:
- 如何编写 OpenSpec 规范
- 如何用同一规范驱动多语言实现
- 如何编写单元测试和集成测试
- 如何使用 Harness 评估质量
- 如何把示例项目接入评测、链接检查和发布门禁
快速开始
Node.js 版本
bash
cd examples/ecommerce-nodejs
npm install
npm run devPython 版本
bash
cd examples/ecommerce-python
pip install -r requirements.txt
python -m uvicorn src.main:app --reload项目结构
Node.js
ecommerce-nodejs/
├── src/
│ ├── domain/ # 领域模型
│ ├── services/ # 业务逻辑
│ ├── http/ # API 接口
│ └── repo/ # 数据存储
├── tests/ # 测试
└── openspec/ # 规范文件Python
ecommerce-python/
├── src/
│ ├── domain/ # Pydantic 模型
│ ├── services/ # 业务逻辑
│ ├── api/ # FastAPI 路由
│ └── repo/ # 数据存储
├── tests/ # Pytest 测试
└── openspec/ # 规范文件API 接口
商品
GET /api/v1/products # 获取商品列表
GET /api/v1/products/:id # 获取商品详情
POST /api/v1/products # 创建商品(管理员)购物车
GET /api/v1/cart # 获取购物车
POST /api/v1/cart/items # 添加商品到购物车
DELETE /api/v1/cart/items/:id # 从购物车移除商品订单
POST /api/v1/orders # 创建订单
GET /api/v1/orders # 获取订单列表
GET /api/v1/orders/:id # 获取订单详情开始学习
选择一套实现开始学习:
示例验收标准
每个示例项目都应该说明:
- 这个示例训练哪些能力。
- 本地启动命令和测试命令是什么。
- 正常运行时应该看到什么结果。
- 失败时优先检查哪些日志或配置。
- 学完后可以扩展哪些练习。