# 开发流程 **本文引用的文件** - [README.md](file://README.md) - [FEATURE_CHECKLIST.md](file://FEATURE_CHECKLIST.md) - [DEPLOY.md](file://DEPLOY.md) - [docs/API.md](file://docs/API.md) - [docs/database-structure.md](file://docs/database-structure.md) - [优化开发计划.md](file://优化开发计划.md) - [开发计划-第二期.md](file://开发计划-第二期.md) - [Bug 修复总结.md](file://Bug 修复总结.md) - [PROJECT_SUMMARY.md](file://PROJECT_SUMMARY.md) - [feature_list.json](file://feature_list.json) - [.plans/audiobook-v2-ux/task_plan.md](file://.plans/audiobook-v2-ux/task_plan.md) - [.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md](file://.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md) - [.plans/audiobook-v2-ux/frontend-dev/task-opt02/task_plan.md](file://.plans/audiobook-v2-ux/frontend-dev/task-opt02/task_plan.md) ## 目录 1. [引言](#引言) 2. [项目结构](#项目结构) 3. [核心组件](#核心组件) 4. [架构总览](#架构总览) 5. [详细组件分析](#详细组件分析) 6. [依赖分析](#依赖分析) 7. [性能考虑](#性能考虑) 8. [故障排查指南](#故障排查指南) 9. [结论](#结论) 10. [附录](#附录) ## 引言 本开发流程文档面向AI有声书生成平台,围绕“功能开发流程、API开发流程、数据库变更流程”以及“开发计划制定、任务分解、进度跟踪”,结合仓库中的实际计划、接口文档、数据库结构与优化实践,提供可落地的流程规范与模板,帮助团队高效协作、降低风险、保障质量。 ## 项目结构 项目采用前后端分离架构,后端以Koa + TypeScript + MongoDB为主,前端使用uni-app + Vue 3 + TypeScript,配合Prisma进行数据库建模与迁移。文档与计划文件集中于根目录与docs目录,便于版本化管理与评审。 ```mermaid graph TB subgraph "前端(uni-app)" FE_App["应用入口
main.ts"] FE_Store["状态管理
Pinia Store"] FE_Pages["页面组件
pages/*"] FE_Utils["工具库
utils/*"] end subgraph "后端(Koa)" BE_App["应用入口
app.ts"] BE_Modules["业务模块
modules/*"] BE_Services["服务层
services/*"] BE_DB["数据库
MongoDB + Prisma"] end subgraph "文档与计划" Docs["API文档
docs/API.md"] Plan["开发计划
.plans/audiobook-v2-ux/*"] DBDoc["数据库结构
docs/database-structure.md"] end FE_Pages --> FE_Store FE_Pages --> FE_Utils FE_Pages --> BE_App BE_App --> BE_Modules BE_Modules --> BE_Services BE_Services --> BE_DB Docs --> BE_App Plan --> FE_Pages Plan --> BE_App DBDoc --> BE_DB ``` 图表来源 - [README.md:31-52](file://README.md#L31-L52) - [docs/API.md:1-499](file://docs/API.md#L1-L499) - [docs/database-structure.md:1-402](file://docs/database-structure.md#L1-L402) - [.plans/audiobook-v2-ux/task_plan.md:1-108](file://.plans/audiobook-v2-ux/task_plan.md#L1-L108) 章节来源 - [README.md:31-52](file://README.md#L31-L52) - [docs/API.md:1-499](file://docs/API.md#L1-L499) - [docs/database-structure.md:1-402](file://docs/database-structure.md#L1-L402) - [.plans/audiobook-v2-ux/task_plan.md:1-108](file://.plans/audiobook-v2-ux/task_plan.md#L1-L108) ## 核心组件 - 前端组件 - 页面层:pages/*(播放器、历史记录、书籍生成、搜索、收藏、设置等) - 状态层:Pinia Store(用户、音频、播放器状态) - 工具层:请求封装、WebSocket工具、存储与配置 - 后端组件 - 控制器与服务:modules/* 与 services/* - 中间件:鉴权、错误处理、限流、安全 - 数据模型:Prisma Schema + 迁移脚本 - 文档与计划 - API契约:docs/API.md - 数据库结构:docs/database-structure.md - 优化计划:.plans/audiobook-v2-ux/* 章节来源 - [FEATURE_CHECKLIST.md:1-150](file://FEATURE_CHECKLIST.md#L1-L150) - [开发计划-第二期.md:41-67](file://开发计划-第二期.md#L41-L67) - [优化开发计划.md:42-399](file://优化开发计划.md#L42-L399) ## 架构总览 系统采用“书籍体系 + 学习路径体系”的双轨内容管理架构,后端通过模块化服务提供TTS、音频、视频、分享、播放记录、收藏、专辑等功能;前端通过页面与状态管理实现播放器、生成流程、搜索与分类、收藏与设置等体验优化。 ```mermaid graph TB subgraph "前端页面" Index["首页"] Player["播放器"] History["历史记录"] Generator["书籍生成"] Search["搜索"] Favorites["收藏"] Settings["设置"] end subgraph "后端模块" Auth["认证模块"] TTS["TTS模块"] Audio["音频模块"] Video["视频生成模块"] Share["分享模块"] PlayerMod["播放记录/偏好模块"] Fav["收藏模块"] Album["专辑模块"] end Index --> Player Player --> Audio Player --> PlayerMod History --> Audio Generator --> TTS Generator --> Audio Search --> Audio Favorites --> Fav Settings --> PlayerMod Share --> Audio Album --> Audio ``` 图表来源 - [docs/database-structure.md:20-160](file://docs/database-structure.md#L20-L160) - [docs/API.md:13-499](file://docs/API.md#L13-L499) - [开发计划-第二期.md:71-117](file://开发计划-第二期.md#L71-L117) ## 详细组件分析 ### 功能开发流程(需求分析→设计评审→开发实现→测试验证) - 需求分析 - 以“.plans/audiobook-v2-ux/task_plan.md”为依据,明确优化项优先级与范围,避免改动核心业务逻辑。 - 参考“优化开发计划.md”中的“优化项分布”与“实施路线图”,拆解每日任务。 - 设计评审 - 前后端负责人在“task_plan.md”中明确分工与接口契约,确保WebSocket事件、API路径与状态字段一致。 - 开发实现 - 前端:按页面维度进行组件级开发,遵循“极简改动、增量实施”原则。 - 后端:按模块开发,确保接口幂等与错误处理一致。 - 测试验证 - 使用“feature_list.json”中的测试步骤进行端到端验证,覆盖功能、性能与兼容性。 ```mermaid flowchart TD Start(["开始"]) --> Analyze["需求分析
确定优先级与范围"] Analyze --> Review["设计评审
前后端接口契约确认"] Review --> Dev["开发实现
前端组件/后端模块"] Dev --> TestPlan["测试计划
参考 feature_list.json"] TestPlan --> UnitTest["单元/接口测试"] UnitTest --> E2E["端到端测试
覆盖关键流程"] E2E --> Deploy["部署验证
DEPLOY.md"] Deploy --> Done(["完成"]) ``` 图表来源 - [.plans/audiobook-v2-ux/task_plan.md:33-66](file://.plans/audiobook-v2-ux/task_plan.md#L33-L66) - [优化开发计划.md:331-364](file://优化开发计划.md#L331-L364) - [feature_list.json:1-683](file://feature_list.json#L1-L683) - [DEPLOY.md:10-160](file://DEPLOY.md#L10-L160) 章节来源 - [.plans/audiobook-v2-ux/task_plan.md:1-108](file://.plans/audiobook-v2-ux/task_plan.md#L1-L108) - [优化开发计划.md:331-364](file://优化开发计划.md#L331-L364) - [feature_list.json:1-683](file://feature_list.json#L1-L683) - [DEPLOY.md:10-160](file://DEPLOY.md#L10-L160) ### API开发流程(接口设计→文档编写→联调测试) - 接口设计 - 参考“docs/API.md”中的模块划分与接口定义,确保统一响应格式与错误码。 - 优化项“OPT-08 一键完整生成”新增编排接口,需在“docs/API.md”中补充。 - 文档编写 - 使用“docs/API.md”作为统一API契约,前后端共同维护。 - 联调测试 - 前端:在“task-opt02”中明确WebSocket事件监听与超时移除。 - 后端:在“PLAN.md”中定义WebSocket事件格式与推送时机。 ```mermaid sequenceDiagram participant FE as "前端页面" participant WS as "WebSocket服务" participant BE as "后端服务" FE->>WS : 建立连接 /ws BE-->>WS : 生成完成事件 WS-->>FE : 推送 audio_generation_complete FE->>FE : 更新章节状态/进度 FE->>BE : 轮询/查询可选 BE-->>FE : 最终状态 ``` 图表来源 - [.plans/audiobook-v2-ux/frontend-dev/task-opt02/task_plan.md:18-38](file://.plans/audiobook-v2-ux/frontend-dev/task-opt02/task_plan.md#L18-L38) - [.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md:12-32](file://.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md#L12-L32) 章节来源 - [docs/API.md:13-499](file://docs/API.md#L13-L499) - [.plans/audiobook-v2-ux/frontend-dev/task-opt02/task_plan.md:1-38](file://.plans/audiobook-v2-ux/frontend-dev/task-opt02/task_plan.md#L1-L38) - [.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md:1-32](file://.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md#L1-L32) ### 数据库变更流程(Schema设计→迁移脚本→数据迁移) - Schema设计 - 参考“docs/database-structure.md”中的表结构与索引设计,确保字段含义与约束清晰。 - 迁移脚本 - 使用Prisma迁移(server/prisma/migrations),遵循“不可破坏性”与“幂等性”。 - 数据迁移 - 对于历史数据,提供迁移脚本与校验步骤,确保数据一致性。 ```mermaid flowchart TD Design["设计Schema
字段/索引/约束"] --> Migrate["生成迁移脚本"] Migrate --> Apply["应用迁移"] Apply --> Verify["数据校验与回归测试"] Verify --> Release["上线发布"] ``` 图表来源 - [docs/database-structure.md:345-402](file://docs/database-structure.md#L345-L402) - [开发计划-第二期.md:120-200](file://开发计划-第二期.md#L120-L200) 章节来源 - [docs/database-structure.md:345-402](file://docs/database-structure.md#L345-L402) - [开发计划-第二期.md:120-200](file://开发计划-第二期.md#L120-L200) ### 开发计划制定(功能优先级、时间估算、资源分配) - 优先级与范围 - P0:必须修复(轮询超时、按钮合并、首页最近收听) - P1:重要优化(简洁模式、睡眠定时、骨架屏、生成按钮固定、一键完整生成) - P2/P3:体验提升与锦上添花 - 时间估算与实施路线图 - 参考“优化开发计划.md”的“实施路线图”,按阶段分配工时与人员。 - 资源分配 - 前后端协同:WebSocket事件、编排接口、反馈提交接口等跨模块任务。 章节来源 - [优化开发计划.md:19-399](file://优化开发计划.md#L19-L399) - [.plans/audiobook-v2-ux/task_plan.md:33-108](file://.plans/audiobook-v2-ux/task_plan.md#L33-L108) ### 任务分解(Story Points、开发周期、里程碑设置) - Story Points - 以“小时”为粒度估算(如OPT-02:2h;OPT-08:4h),便于迭代排期。 - 开发周期 - 第一阶段(P0):3天;第二阶段(P1):5天;第三阶段(P2):2天;第四阶段(P3):1天。 - 里程碑 - 每阶段末尾设置阶段性交付,结合“feature_list.json”的测试步骤进行验收。 章节来源 - [优化开发计划.md:331-364](file://优化开发计划.md#L331-L364) - [feature_list.json:1-683](file://feature_list.json#L1-L683) ### 进度跟踪(每日站会、迭代回顾、风险评估) - 每日站会 - 明确当日目标(如OPT-02超时修复),核对状态与阻塞项。 - 迭代回顾 - 以“.plans/audiobook-v2-ux/task_plan.md”为依据,回顾阶段成果与遗留问题。 - 风险评估 - 前端兼容性(H5/小程序)、后端WebSocket稳定性、接口幂等性与错误处理。 章节来源 - [.plans/audiobook-v2-ux/task_plan.md:105-108](file://.plans/audiobook-v2-ux/task_plan.md#L105-L108) - [Bug 修复总结.md:228-242](file://Bug 修复总结.md#L228-L242) ### 新功能开发模板 - 需求与范围 - 明确功能目标、涉及页面、预估工时与风险。 - 接口设计 - 参考“docs/API.md”,定义请求/响应格式与错误码。 - 前端实现 - 页面组件、状态管理、工具类(如WebSocket工具)。 - 后端实现 - 控制器、服务、中间件与数据库操作。 - 测试与验收 - 使用“feature_list.json”中的测试步骤进行端到端验证。 章节来源 - [docs/API.md:13-499](file://docs/API.md#L13-L499) - [feature_list.json:1-683](file://feature_list.json#L1-L683) ### Bug修复流程 - 识别与分类 - 依据“Bug 修复总结.md”中的优先级(高/中/低)进行分类。 - 修复与验证 - 前端:状态管理、请求封装、定时器清理等。 - 后端:统一错误处理、接口幂等、资源释放。 - 回归测试 - 使用“feature_list.json”中的测试步骤进行回归验证。 章节来源 - [Bug 修复总结.md:1-264](file://Bug 修复总结.md#L1-L264) - [feature_list.json:1-683](file://feature_list.json#L1-L683) ### 紧急变更处理机制 - 快速评估 - 评估影响范围与风险,必要时冻结相关分支。 - 快速修复 - 前后端协同,优先保证接口兼容与错误处理。 - 快速验证 - 使用最小化测试集验证,确保不引入新问题。 - 发布与回滚 - 通过“DEPLOY.md”中的部署流程快速发布,必要时回滚。 章节来源 - [DEPLOY.md:10-160](file://DEPLOY.md#L10-L160) - [Bug 修复总结.md:228-242](file://Bug 修复总结.md#L228-L242) ## 依赖分析 - 前端依赖后端API与WebSocket事件,需严格遵循契约。 - 后端模块之间通过服务层解耦,控制器负责路由与参数校验。 - 数据库变更需与API版本同步,确保迁移脚本与接口兼容。 ```mermaid graph LR FE_Index["首页"] --> BE_Player["播放记录/偏好"] FE_Player["播放器"] --> BE_Audio["音频模块"] FE_Gen["书籍生成"] --> BE_TTS["TTS模块"] FE_WS["WebSocket工具"] --> BE_WS["WebSocket服务"] BE_TTS --> BE_DB["数据库"] BE_Player --> BE_DB ``` 图表来源 - [docs/API.md:13-499](file://docs/API.md#L13-L499) - [.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md:12-32](file://.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md#L12-L32) 章节来源 - [docs/API.md:13-499](file://docs/API.md#L13-L499) - [.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md:12-32](file://.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md#L12-L32) ## 性能考虑 - 前端 - 骨架屏、图片懒加载、虚拟滚动、过渡动画,提升首屏与滚动性能。 - 后端 - 并行任务处理、限流与安全中间件、统一错误处理与日志记录。 - 数据库 - 合理索引设计(如用户+状态、专辑+音频顺序),避免全表扫描。 章节来源 - [开发计划-第二期.md:253-265](file://开发计划-第二期.md#L253-L265) - [docs/database-structure.md:345-402](file://docs/database-structure.md#L345-L402) ## 故障排查指南 - 后端无法启动 - 检查端口占用、环境变量、PM2状态与日志。 - 前端无法访问 - 检查Nginx配置、静态文件权限与缓存。 - 数据库连接失败 - 检查MySQL服务状态与连接配置。 - WebSocket连接异常 - 核对事件格式与推送时机,确保前后端契约一致。 章节来源 - [DEPLOY.md:199-250](file://DEPLOY.md#L199-L250) - [.plans/audiobook-v2-ux/frontend-dev/task-opt02/task_plan.md:18-38](file://.plans/audiobook-v2-ux/frontend-dev/task-opt02/task_plan.md#L18-L38) - [.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md:12-32](file://.plans/audiobook-v2-ux/backend-dev/task-opt02/PLAN.md#L12-L32) ## 结论 本流程文档以仓库中的计划、接口与数据库文档为基础,结合优化实践,提供了从需求到发布的全流程规范。通过明确的优先级、任务分解与进度跟踪机制,配合严格的测试与故障排查流程,能够有效提升团队协作效率与交付质量。 ## 附录 - 快速参考 - API契约:docs/API.md - 数据库结构:docs/database-structure.md - 部署流程:DEPLOY.md - 优化计划:.plans/audiobook-v2-ux/task_plan.md - 测试清单:feature_list.json 章节来源 - [docs/API.md:1-499](file://docs/API.md#L1-L499) - [docs/database-structure.md:1-402](file://docs/database-structure.md#L1-L402) - [DEPLOY.md:1-251](file://DEPLOY.md#L1-L251) - [.plans/audiobook-v2-ux/task_plan.md:1-108](file://.plans/audiobook-v2-ux/task_plan.md#L1-L108) - [feature_list.json:1-683](file://feature_list.json#L1-L683)