通过真实项目案例,学习如何使用 Vibe Coding 完成完整的产品开发
目标:创建一个功能完整的个人博客网站,支持文章发布、分类、评论等功能。
技术栈:
Prompt:
创建一个个人博客系统,包含以下功能:
【核心功能】
1. 文章管理
- 创建、编辑、删除文章
- 支持 Markdown 格式
- 文章分类和标签
- 文章状态(草稿/发布)
2. 用户系统
- 注册、登录
- 个人资料管理
- 权限控制(管理员/普通用户)
3. 前端展示
- 文章列表(分页、分类筛选)
- 文章详情页
- 搜索功能
- 响应式设计
【技术要求】
- 使用 Next.js 做 SSR
- SEO 优化
- 代码规范:ESLint + Prettier
Prompt:
创建项目结构:
blog-system/
├── backend/
│ ├── models/ # 数据模型
│ ├── routes/ # 路由
│ ├── controllers/ # 控制器
│ ├── middleware/ # 中间件
│ └── utils/ # 工具函数
├── frontend/
│ ├── components/ # 组件
│ ├── pages/ # 页面
│ ├── styles/ # 样式
│ └── utils/ # 工具函数
└── shared/ # 共享代码
请创建基础的项目结构和配置文件。
Prompt:
设计博客系统的数据模型:
1. User 模型
- id, email, password, name, role, createdAt
2. Article 模型
- id, title, content, author, category, tags, status, createdAt, updatedAt
3. Category 模型
- id, name, description
使用 MongoDB + Mongoose,包含数据验证。
Prompt:
创建文章管理的 REST API:
GET /api/articles # 获取文章列表(支持分页、筛选)
GET /api/articles/:id # 获取单篇文章
POST /api/articles # 创建文章(需要认证)
PUT /api/articles/:id # 更新文章(需要认证)
DELETE /api/articles/:id # 删除文章(需要认证)
要求:
- 使用 JWT 认证
- 输入验证
- 错误处理
- 返回统一的 JSON 格式
Prompt:
创建博客前端页面:
1. 首页(文章列表)
- 显示最新文章
- 分页
- 分类筛选
- 搜索功能
2. 文章详情页
- 显示文章内容(Markdown 渲染)
- 相关文章推荐
- 响应式设计
3. 管理后台
- 文章列表
- 创建/编辑文章
- 使用富文本编辑器
使用 Next.js + Tailwind CSS
Prompt:
完善博客功能:
1. 添加评论系统
- 用户可以评论文章
- 支持回复评论
- 评论审核(管理员)
2. SEO 优化
- 添加 meta 标签
- 生成 sitemap
- 结构化数据
3. 性能优化
- 图片懒加载
- 文章列表分页
- 静态页面生成
问题:文章内容很长时,Markdown 渲染很慢
解决方案 Prompt:
优化 Markdown 渲染性能:
- 使用服务端渲染
- 添加缓存
- 代码高亮使用异步加载
问题:需要支持图片上传
解决方案 Prompt:
添加图片上传功能:
- 使用云存储(如 Cloudinary)
- 图片压缩
- 支持多种格式
- 返回图片 URL
目标:创建一个功能丰富的任务管理应用,类似 Trello。
技术栈:
Prompt:
创建一个任务管理应用(类似 Trello):
【核心功能】
1. 看板(Board)
- 创建多个看板
- 看板可以共享
2. 列表(List)
- 在看板中创建多个列表
- 可以拖拽排序
3. 任务(Card)
- 在列表中创建任务
- 任务可以拖拽移动
- 任务详情(描述、截止日期、标签、成员)
4. 用户协作
- 邀请成员
- 实时更新
- 活动日志
【技术要求】
- 使用 TypeScript
- 实时同步(WebSocket)
- 拖拽功能(react-beautiful-dnd)
Prompt:
设计任务管理系统的数据模型:
1. Board(看板)
- id, name, description, owner, members, createdAt
2. List(列表)
- id, boardId, name, order, createdAt
3. Card(任务)
- id, listId, title, description, dueDate, labels, members, order
4. User(用户)
- id, email, name, avatar
使用 PostgreSQL + Prisma ORM
Prompt:
实现任务拖拽功能:
要求:
- 可以在列表内拖拽排序
- 可以拖拽到其他列表
- 拖拽后更新数据库
- 实时同步给其他用户
- 使用 react-beautiful-dnd
处理:
- 拖拽开始/结束事件
- 更新本地状态
- 发送到服务器
- 错误回滚
Prompt:
实现实时同步功能:
使用 WebSocket:
- 用户操作(创建、更新、删除)实时同步
- 多用户同时编辑处理冲突
- 显示在线用户
- 活动日志实时更新
要求:
- 使用 Socket.io
- 处理连接断开重连
- 优化消息频率
问题:多用户同时拖拽导致冲突
解决方案 Prompt:
解决拖拽冲突:
- 使用乐观更新
- 服务器端验证
- 冲突时使用服务器状态
- 显示冲突提示
问题:看板任务很多时,页面卡顿
解决方案 Prompt:
优化性能:
- 虚拟滚动(react-window)
- 按需加载任务详情
- 使用 React.memo 优化组件
- 减少不必要的重渲染
目标:创建一个 RESTful API 服务,提供用户、商品、订单等管理功能。
技术栈:
Prompt:
设计一个电商 REST API:
【资源设计】
1. Users(用户)
GET /api/users
GET /api/users/:id
POST /api/users
PUT /api/users/:id
DELETE /api/users/:id
2. Products(商品)
GET /api/products
GET /api/products/:id
POST /api/products
PUT /api/products/:id
DELETE /api/products/:id
3. Orders(订单)
GET /api/orders
GET /api/orders/:id
POST /api/orders
PUT /api/orders/:id
【要求】
- 遵循 RESTful 规范
- 统一的响应格式
- 完整的错误处理
- API 文档(Swagger)
Prompt:
实现 JWT 认证系统:
功能:
- 用户注册(邮箱验证)
- 用户登录(返回 token)
- Token 刷新
- 密码重置
安全要求:
- 密码加密(bcrypt)
- Token 过期时间(1小时)
- Refresh token(7天)
- 速率限制
- 输入验证
Prompt:
添加数据验证:
使用 Joi 或 express-validator:
- 请求参数验证
- 请求体验证
- 自定义验证规则
- 友好的错误信息
示例:
- 邮箱格式验证
- 密码强度验证
- 数字范围验证
- 必填字段验证
Prompt:
生成 Swagger API 文档:
要求:
- 所有端点都有文档
- 请求/响应示例
- 错误响应说明
- 认证说明
- 可以交互测试
问题:大量数据时分页查询慢
解决方案 Prompt:
优化分页查询:
- 使用游标分页(cursor-based)
- 添加数据库索引
- 限制最大页数
- 使用缓存
问题:需要支持 API 版本
解决方案 Prompt:
实现 API 版本控制:
- URL 版本:/api/v1/users
- 支持多版本共存
- 版本迁移策略
目标:创建一个实时聊天应用,支持私聊和群聊。
技术栈:
Prompt:
创建 WebSocket 服务器:
功能:
- 用户连接/断开
- 发送消息
- 接收消息
- 在线用户列表
使用 Socket.io
Prompt:
实现聊天房间功能:
- 创建房间
- 加入房间
- 离开房间
- 房间消息
- 房间成员列表
Prompt:
实现消息存储:
- 保存消息到数据库
- 消息历史记录
- 未读消息计数
- 消息搜索
问题:多服务器时消息顺序混乱
解决方案 Prompt:
解决消息顺序问题:
- 使用消息 ID 和时间戳
- 客户端排序
- 服务器端验证
通过实践,不断进步! 🚀