Files
wenzi/docs/review-2025-09-30.md

31 lines
2.0 KiB
Markdown
Raw Permalink Normal View History

# 代码审查报告2025-09-30
## 概览
- 技术栈Spring Boot 3、Java 17、Maven、JUnit 5、MockMvc、Flyway、Redis缓存测试为嵌入式
- 构建与测试:已联网执行 `mvn clean verify` 成功。产物 `target/mosquito-0.0.1-SNAPSHOT.jar` 生成。
- 测试统计:共 26 个测试全通过0 失败/0 错误/0 跳过),详见 `target/surefire-reports/`
## 结构与模块
- 包结构清晰:`controller / service / domain / dto / exception / job`
- 资源与迁移:`application.properties` 与 Flyway 迁移V1V5完整命名规范。
- 文档完善:`docs/`API、架构、数据模型、测试计划`specs/` 分层合理。
## 主要发现
- 控制器:输入校验充分(`@Valid`),返回码语义正确;异常部分依赖注解映射,建议统一异常处理。
- 服务:`ActivityService` 为内存态实现,具备并发安全;`getLeaderboard` 使用 `Thread.sleep` 模拟耗时,建议替换为可注入的延迟或移除。
- 领域模型:当前未持久化(无 JPA 注解),与 Flyway 表结构存在偏差(如 JSONB 字段、状态字段等)。
- 定时任务:`StatisticsAggregationJob` 逻辑简单明确,易扩展为真实数据聚合。
- 依赖:引入了 JPA/AMQP 但暂未使用;`javax.annotation-api` 在 Boot 3 生态建议迁移至 `jakarta.annotation`(仅测试配置中使用)。
- 缓存:`@Cacheable("leaderboards")` 生效,建议补充 TTL、序列化策略与命名规范。
## 建议优先级
1) 统一异常处理与错误响应格式(高)。
2) 去除 `Thread.sleep` 模拟延迟(高)。
3) 对齐领域模型与数据库(引入 JPA 实体/仓储)(高)。
4) 缓存策略TTL、序列化、命名与多环境配置
5) API Key 安全增强与审计(中)。
6) 测试覆盖补齐(奖励/多级奖励/上传/权限)(中)。
7) 依赖精简或尽快落地 AMQP/JPA
8) 覆盖率基线JaCoCo与质量门禁