背景
对 server/router/api/v1 包进行了 DRY/SOLID 原则扫描,发现 13 处违约问题需要清理。
详细报告:docs/reports/api-v1-dry-solid-violations.md
问题清单
DRY 违约 (6 项) - 中优先级
| # |
问题 |
位置 |
影响 |
| 1 |
AI 服务可用性检查重复 30+ 次 |
connect_handler.go |
代码膨胀 |
| 2 |
用户获取模式重复 |
auth_service.go, ai_service.go |
维护成本 |
| 3 |
资源名称解析模式重复 |
user_service.go |
不一致风险 |
| 4 |
权限检查模式重复 10+ 次 |
user_service.go, memo_service.go |
代码膨胀 |
| 5 |
Schedule Reminders 转换重复 |
schedule_service.go |
维护成本 |
| 6 |
Connect 错误转换重复 |
connect_handler.go |
代码膨胀 |
SOLID 违约 (7 项)
| # |
原则 |
问题 |
严重程度 |
| 1 |
SRP |
APIV1Service 实现 11 个 gRPC 服务接口 |
高 |
| 2 |
SRP |
user_service.go 1444 行,包含 6 个功能域 |
高 |
| 3 |
SRP |
connect_handler.go 包含 parrot 业务逻辑 |
中 |
| 4 |
OCP |
UpdateSchedule 字段更新硬编码 |
中 |
| 5 |
ISP |
AIService 包含 16+ 字段,客户端无需全部 |
中 |
| 6 |
DIP |
getRouterService 直接依赖具体实现 |
低 |
修复计划
Phase 1: 高优先级 SRP 违约
Phase 2: DRY 违约清理
Phase 3: 其他优化
参考文档
- 扫描报告:
docs/reports/api-v1-dry-solid-violations.md
- 扫描日期:2026-02-18
Labels
technical-debt, refactor, api-v1
背景
对
server/router/api/v1包进行了 DRY/SOLID 原则扫描,发现 13 处违约问题需要清理。详细报告:
docs/reports/api-v1-dry-solid-violations.md问题清单
DRY 违约 (6 项) - 中优先级
connect_handler.goauth_service.go,ai_service.gouser_service.gouser_service.go,memo_service.goschedule_service.goconnect_handler.goSOLID 违约 (7 项)
APIV1Service实现 11 个 gRPC 服务接口user_service.go1444 行,包含 6 个功能域connect_handler.go包含 parrot 业务逻辑UpdateSchedule字段更新硬编码AIService包含 16+ 字段,客户端无需全部getRouterService直接依赖具体实现修复计划
Phase 1: 高优先级 SRP 违约
user_service.go为独立文件user_service_crud.gouser_service_settings.gouser_service_tokens.gouser_service_webhooks.gouser_service_notifications.gouser_service_converter.goAPIV1Service拆分可行性Phase 2: DRY 违约清理
requireAI()辅助函数requireUserOrAdmin()权限检查函数common.goPhase 3: 其他优化
ScheduleService.UpdateSchedule字段映射参考文档
docs/reports/api-v1-dry-solid-violations.mdLabels
technical-debt,refactor,api-v1