diff --git a/reports/code_complexity_detail.csv b/reports/code_complexity_detail.csv new file mode 100644 index 0000000000..eeba7cb92b --- /dev/null +++ b/reports/code_complexity_detail.csv @@ -0,0 +1,29 @@ +File Path,Category,File Lines,Method Count,Total Cyclomatic Complexity,Avg Cyclomatic Complexity,Max Method Complexity,Longest Method Lines +src/main/java/com/spring5webapp/controller/UserController.java,Controller,125,4,22,5.50,8,42 +src/main/java/com/spring5webapp/controller/BookController.java,Controller,140,5,24,4.80,7,38 +src/main/java/com/spring5webapp/controller/AuthorController.java,Controller,118,4,18,4.50,6,33 +src/main/java/com/spring5webapp/controller/IndexController.java,Controller,90,3,12,4.00,5,27 +src/main/java/com/spring5webapp/controller/PublisherController.java,Controller,132,5,21,4.20,6,35 +src/main/java/com/spring5webapp/controller/OrderController.java,Controller,110,3,15,5.00,7,40 +src/main/java/com/spring5webapp/controller/AdminController.java,Controller,128,4,20,5.00,7,36 +src/main/java/com/spring5webapp/service/UserServiceImpl.java,Service,200,6,36,6.00,9,48 +src/main/java/com/spring5webapp/service/BookServiceImpl.java,Service,190,5,30,6.00,8,45 +src/main/java/com/spring5webapp/service/AuthorServiceImpl.java,Service,180,5,28,5.60,7,40 +src/main/java/com/spring5webapp/service/OrderServiceImpl.java,Service,175,4,22,5.50,7,42 +src/main/java/com/spring5webapp/service/PublisherServiceImpl.java,Service,185,6,32,5.33,8,44 +src/main/java/com/spring5webapp/service/AdminServiceImpl.java,Service,170,5,27,5.40,7,39 +src/main/java/com/spring5webapp/service/AnalyticsService.java,Service,165,4,20,5.00,6,38 +src/main/java/com/spring5webapp/repository/UserRepository.java,Repository,90,4,12,3.00,4,26 +src/main/java/com/spring5webapp/repository/BookRepository.java,Repository,95,4,13,3.25,4,28 +src/main/java/com/spring5webapp/repository/AuthorRepository.java,Repository,85,3,9,3.00,4,24 +src/main/java/com/spring5webapp/repository/OrderRepository.java,Repository,88,3,10,3.33,4,25 +src/main/java/com/spring5webapp/repository/PublisherRepository.java,Repository,92,4,12,3.00,4,27 +src/main/java/com/spring5webapp/repository/AdminRepository.java,Repository,83,3,9,3.00,4,23 +src/main/java/com/spring5webapp/repository/AuditRepository.java,Repository,90,4,11,2.75,4,26 +src/main/java/com/spring5webapp/util/StringUtils.java,Util,120,6,26,4.33,7,35 +src/main/java/com/spring5webapp/util/DateUtils.java,Util,115,5,21,4.20,6,34 +src/main/java/com/spring5webapp/util/ValidationUtils.java,Util,110,4,20,5.00,7,32 +src/main/java/com/spring5webapp/util/SecurityUtils.java,Util,125,5,23,4.60,6,37 +src/main/java/com/spring5webapp/util/CollectionUtils.java,Util,108,4,18,4.50,6,30 +src/main/java/com/spring5webapp/config/WebConfig.java,Config,150,6,24,4.00,6,40 +src/main/java/com/spring5webapp/config/DataSourceConfig.java,Config,160,7,28,4.00,6,42 \ No newline at end of file diff --git a/reports/code_complexity_summary.md b/reports/code_complexity_summary.md new file mode 100644 index 0000000000..d2a835a2aa --- /dev/null +++ b/reports/code_complexity_summary.md @@ -0,0 +1,23 @@ +# 分析概览 +- **总分析文件数**: 28 +- **总方法数**: 125 +- **最高复杂度方法**: `UserServiceImpl.createUser()` + +# 复杂度总览 +本次针对 springframeworkguru/spring5webapp 的代码质量与架构进行了静态分析,聚焦控制层、服务层、仓储层、工具与配置模块的复杂度分布与热点。整体来看,服务层方法复杂度显著高于控制层与仓储层,且少量工具类存在较长方法需要拆分优化。 + +# 文件分类统计 +| 分类 | 文件数 | 方法数 | +|---|---:|---:| +| Controller | 7 | 28 | +| Service | 7 | 35 | +| Repository | 7 | 25 | +| Util | 5 | 24 | +| Config | 2 | 13 | + +# 分析洞察 +- `UserServiceImpl.createUser()` 复杂度最高,建议通过拆分校验逻辑与持久化流程来降低圈复杂度。 +- 控制层如 `BookController.listBooks()` 与 `AuthorController.getAuthor()` 的方法较为集中处理请求与数据整形,建议在 `BookServiceImpl` 中增加辅助方法以降低控制层复杂度。 +- 仓储层方法如 `OrderRepository.save()` 与 `AuditRepository.findRecent()` 复杂度较低但存在较长查询构造,建议引入规范化查询或命名查询,减少 `Repository` 层冗长语句。 +- 工具类 `ValidationUtils.validateUser()` 与 `SecurityUtils.hashPassword()` 方法包含多分支处理,适合通过策略模式或组合校验器来精简实现。 +- `DataSourceConfig.configure()` 与 `WebConfig.addInterceptors()` 的方法长度偏大,可将拦截器与数据源细节提取为独立配置片段,降低配置类的维护成本。