Skip to content

Use Case 边界

Use case 是当前 backend 主链最重要的扩展落点。对于 chat、处方、assessment、companion 这些主流程,优先通过 use case 承担业务编排,而不是把完整流程写回 API route。

当前 use case 清单

Use Case业务链路说明对应测试
chat/send_message.pyAI 对话发送消息主链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 overviewtest_get_health_overview_use_case.py

API 到 use case 的映射

API 文件当前 use case 接入情况
app/api/chat.py使用 SendChatMessageUseCase
app/api/prescription.py使用 GeneratePrescriptionUseCaseGetCurrentPrescriptionUseCaseReplacePrescriptionUseCase
app/api/assessment.py使用 PerformSafetyCheckUseCaseSubmitFullAssessmentUseCase
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. 未来新增核心流程时的默认策略应非常明确

建议顺序:

  1. 先判断是不是主链功能
  2. 如果是,优先新增 use case
  3. 再让 API route 只负责 adapter 工作
  4. 最后补 use case test 和 API test

来源锚点

  • apps/backend_service/app/use_cases/
  • apps/backend_service/app/api/chat.py
  • apps/backend_service/app/api/prescription.py
  • apps/backend_service/app/api/assessment.py
  • apps/backend_service/app/api/companion.py
  • apps/backend_service/tests/use_cases/