领域逻辑下沉到服务层怎么理解?(核心业务规则、分层架构重构手法)路由层

发布时间:2026/7/9 21:41:10

领域逻辑下沉到服务层怎么理解?(核心业务规则、分层架构重构手法)路由层 符合最佳实践的部分进程内共享服务替代 HTTP 自调用。 prepare_interview 和 analyze_job 现在与/v1/agent/interview、/v1/agent/analyze 端点共用同一个服务层函数services/interview.py、services/analysis.py。路由只做传输适配领域逻辑下沉到服务层——这是标准分层架构消除了自调用的网络往返、鉴权绕行和配置漂移。文章目录领域逻辑下沉到服务层是什么意思1. 什么是领域逻辑Domain Logic2. 什么是下沉3. 路由只做传输适配是什么意思总结一句话领域逻辑下沉到服务层是什么意思这句话描述的是一种标准的分层架构重构手法。我们逐词拆解1. 什么是领域逻辑Domain Logic就是核心业务规则——与这个系统到底在做什么直接相关的代码。在你给出的场景中准备一场面试需要哪些步骤查什么数据、调什么模型、怎么组装结果分析一个岗位的算法和流程是什么这些就是领域逻辑。它们是系统最有价值的部分跟 HTTP、数据库、消息队列等技术细节无关。2. 什么是下沉就是把代码从上层移动到下层。重构前逻辑散落在路由层路由/控制器层HTTP 端点 ├── /v1/agent/interview ← 业务逻辑写在这里 └── /v1/agent/analyze ← 业务逻辑写在这里 后台任务 ├── prepare_interview ← 通过 HTTP 自调用上面的端点 └── analyze_job ← 通过 HTTP 自调用上面的端点 问题业务逻辑被绑在了 HTTP 路由上后台任务想复用就只能发 HTTP 请求给自己自调用带来网络开销、鉴权绕行、配置漂移等一系列问题。重构后逻辑下沉到服务层路由/控制器层只做传输适配 ├── /v1/agent/interview ← 解析请求 → 调服务层 → 包装响应 └── /v1/agent/analyze ← 解析请求 → 调服务层 → 包装响应 服务层services/ ← 领域逻辑在这里 ├── interview.py ← 核心业务逻辑 └── analysis.py ← 核心业务逻辑 后台任务直接调用服务层 ├── prepare_interview ← 直接调 services/interview.py ✅ └── analyze_job ← 直接调 services/analysis.py ✅3. 路由只做传输适配是什么意思路由层变成了一个薄薄的壳只做三件事# 路由层薄router.post(/v1/agent/interview)asyncdefinterview_endpoint(request:InterviewRequest):# 1. 把 HTTP 请求转成领域对象# 2. 调用服务层resultawaitinterview_service.prepare(request.to_domain())# 3. 把领域结果转成 HTTP 响应returnInterviewResponse.from_domain(result)所有怎么算的逻辑都在interview_service.prepare()里路由完全不关心。总结一句话把业务怎么算领域逻辑从 HTTP 路由里拿出来放到一个独立的、不依赖任何传输协议的服务层里。这样不管是 HTTP 请求还是后台任务都可以直接调用同一份业务代码不用再绕一圈发 HTTP 请求给自己。

相关新闻