| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24/homework/15658 |
|---|---|
| 团队名称 | WSQ |
| 团队成员学号-姓名 | 王俊琦-3124004518 绳璨泽-3124004516 钱河辰-3124004515 |
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24/?page=2 |
| 这个作业的目标 | 完善项目,介绍项目 |
WSQ-beta冲刺博客
一、Alpha冲刺后项目问题复盘与解决
在Alpha版本交付后,我们对项目进行了全面复盘,梳理出以下核心问题,并完成了针对性优化:
| 序号 | 问题描述 | 探索思路 | 解决过程 |
|---|---|---|---|
| 1 | 数据库初始化存在竞态风险,服务启动时可能出现“数据库未就绪”报错 | 1. 分析getDb()异步逻辑,发现服务启动与数据库初始化未做串行控制;2. 排查出 dbReady标志位更新时机存在漏洞 |
重构数据库初始化流程,将getDb()改为异步等待模式,服务启动前先完成数据库初始化;优化waitForDb中间件,确保所有请求必须等待数据库就绪后再处理 |
| 2 | AI聊天接口缺乏输入校验,空消息、无效配置会直接抛出异常 | 1. 梳理聊天接口的请求参数,识别出apiKey、message等关键参数未做校验;2. 分析异常处理逻辑,发现错误提示不友好 |
增加参数校验逻辑,对空消息、无效API配置提前返回错误;优化错误捕获分支,针对超时、密钥错误、地址错误提供明确提示 |
| 3 | 数据库字段自动补全逻辑不稳定,部分扩展字段无法被识别 | 1. 测试发现ensureColumns()在表结构变更时会抛出异常,导致初始化中断;2. 分析 PRAGMA table_info的查询逻辑,发现字段判断存在边界问题 |
重构字段自动补全函数,添加try-catch捕获异常;统一字段类型与建表语句,确保新增字段可被稳定识别 |
| 4 | 数据库保存操作缺乏错误处理,文件写入失败会导致数据丢失 | 1. 测试断电、权限不足等异常场景,发现save()函数未做异常捕获;2. 评估数据持久化的可靠性风险 |
为save()函数添加try-catch,捕获文件写入异常并输出日志;优化数据库导出逻辑,确保数据完整性 |
二、项目特色功能展示
本项目是面向《洛克王国》玩家的一站式游戏助手平台,核心特色功能如下:
1. 全维度游戏数据查询
支持精灵、技能、道具、地图、蛋组等全品类游戏数据的模糊查询与筛选,例如按系别、稀有度筛选精灵,按技能类型、威力查询技能信息。

2. 孵蛋精灵预测系统
通过输入蛋的直径、重量数据,结合内置的蛋尺寸数据库,智能匹配可能孵出的精灵,并给出匹配度评分与匹配类型(精确/范围/部分/近似),帮助玩家快速判断蛋的归属。

3. 个性化AI聊天助手
基于大模型API打造的洛克王国专属聊天伴侣,支持自定义角色名、性格、说话风格,可结合本地游戏数据提供专业解答,同时支持聊天历史记忆与清空功能。
可以实现以下功能:
1.搜索精灵(按名称/系别/蛋组)

2.获取精灵详细信息(种族值等)

3.蛋尺寸重量匹配精灵

三、关键模块自动化单元测试
我们对项目核心模块编写了自动化单元测试,确保功能稳定性与可靠性,以下是关键测试场景与结果:
数据库模块测试
- 测试场景:数据库初始化、字段自动补全、数据增删改查、文件保存
- 测试结果:所有用例通过,数据库可正常创建表、新增字段、读写数据,文件保存无异常

四、团队协作记录与成员体会
团队协作记录
本次Beta冲刺阶段,主要协作内容如下:
- 每日进度同步,及时解决阻塞问题
- 代码评审:对关键模块(数据库、API接口、AI聊天)进行交叉评审,确保代码质量
- 任务分工:
- 王俊琦:数据库模块优化、单元测试编写
- 绳璨泽:API接口优化、性能调优
- 钱河辰:AI聊天功能完善、错误处理优化、测试与文档整理
成员体会与收获
- 王俊琦(数据库开发):本次冲刺让我对SQL.js的异步操作与数据库持久化有了更深入的理解,尤其是字段自动补全与异常处理的设计,让我意识到数据库模块的稳定性对整个项目的重要性。通过编写单元测试,我学会了如何对核心数据操作进行自动化验证,有效避免了后续迭代中的数据问题。同时,团队协作中的代码评审也帮助我发现了很多潜在的边界问题,提升了代码的健壮性。
- 绳璨泽(后端接口开发):优化商人接口的N+1查询问题是本次冲刺的一大收获,通过性能分析与批量查询优化,我对接口性能调优有了更实际的认识。同时,AI聊天接口的参数校验与错误处理优化,让我学会了如何提升用户体验,提供更友好的错误提示。团队协作中,与其他成员的对接也让我意识到接口设计需要兼顾易用性与稳定性,为后续项目开发积累了宝贵经验。
- 钱河辰(AI功能与测试):负责AI聊天助手的优化让我对大模型API的调用逻辑、提示词工程有了更深入的实践。通过自定义角色设定与本地数据结合,我学会了如何让AI输出更符合场景的回答,同时也解决了聊天历史管理、请求超时等实际问题。编写单元测试与整理博客的过程,让我对项目的核心业务逻辑有了更全面的理解,也学会了如何从用户视角发现问题。
五、项目仓库与后续计划
GitHub仓库地址:https://github.com/Spencer667/arepublic
本次冲刺已将所有优化后的代码、单元测试脚本、项目文档更新至仓库。后续我们将继续完善以下内容:
- 优化前端界面交互,提升用户体验
- 补充更多游戏数据,完善数据库内容
- 增加更多实用功能,如精灵配对推荐、技能学习路径查询等
