外观
Use Case 边界
Use case 是当前 backend 主链最重要的扩展落点。对于 chat、处方、assessment、companion 这些主流程,优先通过 use case 承担业务编排,而不是把完整流程写回 API route。
当前 use case 清单
| Use Case | 业务链路 | 说明 | 对应测试 |
|---|---|---|---|
chat/send_message.py | AI 对话 | 发送消息主链 | test_send_chat_message_use_case.py |
prescription/generate_prescription.py | 生成运动处方 | 生成处方主链 | test_generate_prescription_use_case.py |
prescription/manage_prescription.py | 当前处方 / 替换处方 | 读取与替换当前处方 | test_manage_prescription_use_case.py |
assessment/perform_safety_check.py | 安全检查 | safety check 编排 | test_perform_safety_check_use_case.py |
assessment/submit_full_assessment.py | 完整评估提交 | assessment submit 编排 | test_submit_full_assessment_use_case.py |
companion/get_health_overview.py | 健康总览 | 聚合 health overview | test_get_health_overview_use_case.py |
API 到 use case 的映射
| API 文件 | 当前 use case 接入情况 |
|---|---|
app/api/chat.py | 使用 SendChatMessageUseCase |
app/api/prescription.py | 使用 GeneratePrescriptionUseCase、GetCurrentPrescriptionUseCase、ReplacePrescriptionUseCase |
app/api/assessment.py | 使用 PerformSafetyCheckUseCase、SubmitFullAssessmentUseCase |
app/api/companion.py | 使用 GetHealthOverviewUseCase |
use case 的职责边界
在当前项目里,use case 至少应承担:
- 接收 command / request-like 数据
- 编排 service / repository / gateway
- 产出清晰 result
- 保持与 HTTP adapter 解耦
它不应承担:
- FastAPI request/response 协议细节
- 直接暴露框架对象给外层调用方
- 无边界地吞并所有基础设施逻辑
当前实现判断
1. use case 边界已经建立,但还不是全仓统一范式
- chat / prescription / assessment / companion 已形成样板
- auth、sport、user 等模块仍更多依赖 service / router 组合承载
2. 这是当前 backend 最值得保护的演化成果之一
- 因为它直接影响主链是否还能被清楚描述
- 也直接影响测试是否能锚定主链编排
3. 未来新增核心流程时的默认策略应非常明确
建议顺序:
- 先判断是不是主链功能
- 如果是,优先新增 use case
- 再让 API route 只负责 adapter 工作
- 最后补 use case test 和 API test
来源锚点
apps/backend_service/app/use_cases/apps/backend_service/app/api/chat.pyapps/backend_service/app/api/prescription.pyapps/backend_service/app/api/assessment.pyapps/backend_service/app/api/companion.pyapps/backend_service/tests/use_cases/