我用 Cursor + Claude Code 搭了全栈项目:从需求到部署,AI 干了 90% 的活
我用 Cursor + Claude Code 搭了全栈项目:从需求到部署,AI 干了 90% 的活
适合想用 AI 工具从零搭建完整项目的开发者。
本文用 Cursor + Claude Code 从需求分析到部署上线,全程记录 AI 完成了哪些工作、哪些必须人工介入。
背景:AI 编程工具到底能做多少
2026 年 AI 编程工具已经从"代码补全"进化到"自主执行"。但到底能做多少?是 50% 还是 90%?
我做了一个实验:用 Cursor + Claude Code 从零搭建一个完整的全栈项目(前后端 + 数据库 + 部署),记录每个环节 AI 完成了多少。
项目:任务管理 Web 应用
功能需求:
- 用户注册/登录
- 任务 CRUD(创建/读取/更新/删除)
- 任务分类和标签
- 团队协作(邀请成员)
- 数据统计面板
技术栈:
- 前端:React + TypeScript + Tailwind CSS
- 后端:Python FastAPI
- 数据库:PostgreSQL
- 部署:Docker + Nginx
阶段 1:需求分析(AI 完成度:80%)
我给 Claude Code 一句话需求:
帮我搭建一个任务管理 Web 应用,支持用户注册登录、任务 CRUD、团队协作、数据统计。
技术栈:React + FastAPI + PostgreSQL + Docker。
先帮我分析需求,列出功能模块和技术方案。
Claude Code 输出了完整的需求分析:
功能模块:
1. 用户系统:注册、登录、JWT 认证、密码重置
2. 任务系统:CRUD、分类、标签、优先级、截止日期
3. 团队系统:创建团队、邀请成员、权限管理
4. 统计系统:任务完成率、成员活跃度、时间分布
技术方案:
- 前端:React 18 + TypeScript + Tailwind + React Router
- 后端:FastAPI + SQLAlchemy + Alembic(数据库迁移)
- 认证:JWT + bcrypt
- 部署:Docker Compose(前端 + 后端 + 数据库 + Nginx)
数据库设计:
[完整的表结构和字段定义]
人工介入:我调整了 3 个功能优先级(把"数据统计"降到 Phase 2),确认了技术选型。
阶段 2:数据库设计(AI 完成度:95%)
基于确认的需求,帮我设计 PostgreSQL 数据库 schema,包括:
- 所有表的字段定义
- 外键关系
- 索引建议
- 生成 Alembic 迁移文件
Claude Code 输出了完整的 SQL schema + Alembic 迁移代码,包括:
- users 表(id, email, password_hash, name, created_at)
- teams 表(id, name, owner_id, created_at)
- team_members 表(team_id, user_id, role)
- tasks 表(id, title, description, status, priority, due_date, assignee_id, team_id)
- tags 表(id, name, color)
- task_tags 表(task_id, tag_id)
人工介入:我加了一个 deleted_at 字段(软删除),其他直接用了。
阶段 3:后端开发(AI 完成度:90%)
API 接口
基于数据库 schema,帮我实现 FastAPI 后端,包括:
- 所有 CRUD 接口
- JWT 认证中间件
- 权限校验
- 分页查询
- 错误处理
Claude Code 生成了完整的后端代码:
main.py- FastAPI 入口models/- SQLAlchemy 模型schemas/- Pydantic 请求/响应 schemarouters/- API 路由(auth, tasks, teams, stats)middleware/- JWT 认证中间件database.py- 数据库连接
代码量:约 800 行 Python,AI 生成了 750 行,我手动修改了 50 行。
人工介入的 50 行:
- 调整了分页查询的默认值
- 加了软删除逻辑
- 修正了一个外键级联删除的问题
- 添加了请求频率限制
测试
给所有 API 接口写 pytest 测试用例,覆盖正常情况和异常情况。
AI 生成了 35 个测试用例,覆盖了所有接口的正常/异常场景。我手动补充了 5 个边界条件测试。
阶段 4:前端开发(AI 完成度:85%)
基于后端 API,帮我实现 React 前端,包括:
- 页面路由
- 登录/注册页面
- 任务列表页面(支持筛选、排序)
- 任务详情/编辑页面
- 团队管理页面
- 数据统计图表
- 响应式布局
Claude Code 生成了完整的前端代码:
src/pages/- 所有页面组件src/components/- 可复用组件src/api/- API 调用封装src/hooks/- 自定义 hookssrc/context/- 状态管理
代码量:约 1200 行 TypeScript,AI 生成了 1000 行,我手动修改了 200 行。
人工介入的 200 行:
- UI 细节调整(按钮颜色、间距、动画)
- 表单验证逻辑补充
- 错误提示文案优化
- 移动端适配微调
阶段 5:Docker 部署(AI 完成度:95%)
帮我写 Docker Compose 配置,包括:
- 前端(Nginx 代理)
- 后端(FastAPI + Uvicorn)
- 数据库(PostgreSQL)
- 环境变量配置
- 健康检查
AI 生成了完整的 docker-compose.yml + Dockerfile(前后端各一个)+ nginx.conf。直接 docker-compose up 就能跑。
人工介入:修改了 Nginx 的 CORS 配置和 SSL 证书路径。
总结:AI 完成度统计
| 阶段 | AI 生成代码量 | 人工修改量 | AI 完成度 |
|---|---|---|---|
| 需求分析 | 100% 结构 | 调整优先级 | 80% |
| 数据库设计 | 完整 schema | 加 1 个字段 | 95% |
| 后端开发 | 750/800 行 | 50 行 | 90% |
| 前端开发 | 1000/1200 行 | 200 行 | 85% |
| Docker 部署 | 完整配置 | CORS 微调 | 95% |
| 总计 | 约 3000 行 | 约 300 行 | 约 90% |
AI 做不好的 10%
| 环节 | 为什么 AI 做不好 | 必须人工介入 |
|---|---|---|
| UI 细节 | AI 不知道你的审美偏好 | 按钮颜色、间距、动画 |
| 业务逻辑 | AI 不懂你的业务规则 | 软删除策略、权限模型 |
| 性能优化 | AI 写的是"能跑"的代码 | 数据库索引、缓存策略 |
| 安全加固 | AI 不会主动做安全 | 频率限制、输入校验、SQL 注入防护 |
| 错误处理 | AI 的错误处理太泛 | 具体的错误提示文案 |
| 移动端适配 | AI 生成的是桌面优先 | 响应式细节调整 |
踩坑记录
坑 1:AI 生成的代码风格不一致
症状:后端有的函数用 async,有的不用。前端有的用 functional component,有的用 class。
原因:每次对话 AI 的"记忆"有限,前后生成的代码风格可能不同。
解决:在 CLAUDE.md 里明确写代码规范,或者一次性生成完整代码。
坑 2:AI 不处理边界条件
症状:任务列表页面,没有任务时显示空白,没有"暂无数据"提示。
原因:AI 默认假设数据存在,不处理空状态。
解决:让 AI 补充空状态、加载状态、错误状态的处理。
坑 3:AI 生成的 API 响应格式不统一
症状:有的接口返回 {data: ...},有的返回 {result: ...}。
解决:在 prompt 里统一规定响应格式 {code, message, data}。
坑 4:AI 不做数据库索引优化
症状:任务列表查询很慢,1000 条数据要 2 秒。
原因:AI 生成的 schema 没有加索引。
解决:手动给 tasks.team_id、tasks.assignee_id 加索引。
坑 5:AI 的 Docker 配置不含健康检查
症状:数据库还没启动完,后端就报连接失败。
解决:让 AI 加 depends_on + healthcheck 配置。
工作量对比
| 方式 | 预估耗时 | 实际耗时 |
|---|---|---|
| 全手动开发 | 5-7 天 | - |
| AI 辅助(本次) | - | 1.5 天 |
| 节省 | - | 约 75% |
总结
3 条核心经验:
-
AI 能完成 90% 的代码,但 10% 的人工介入决定了项目质量。UI 细节、业务逻辑、性能优化、安全加固必须人工做。
-
先让 AI 做规划再写代码。需求分析和数据库设计让 AI 先做,你确认后再开发。返工率降低 80%。
-
AI 生成的代码必须 review。不是不信任 AI,而是 AI 不懂你的业务。review 的重点是边界条件、错误处理、安全问题。
你用 AI 工具搭过完整项目吗?AI 完成了多少?评论区交流。
更多推荐
所有评论(0)