news 2026/7/9 21:41:07

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
领域逻辑下沉到服务层怎么理解?(核心业务规则、分层架构重构手法)路由层

符合最佳实践的部分

  1. 进程内共享服务替代 HTTP 自调用。 prepare_interview 和 analyze_job 现在与/v1/agent/interview、/v1/agent/analyze 端点共用同一个服务层函数(services/interview.py、services/analysis.py)。路由只做传输适配,领域逻辑下沉到服务层——这是标准分层架构,消除了自调用的网络往返、鉴权绕行和配置漂移。

文章目录

    • "领域逻辑下沉到服务层"是什么意思?
      • 1. 什么是"领域逻辑"(Domain Logic)?
      • 2. 什么是"下沉"?
      • 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. 调用服务层result=awaitinterview_service.prepare(request.to_domain())# 3. 把领域结果转成 HTTP 响应returnInterviewResponse.from_domain(result)

所有"怎么算"的逻辑都在interview_service.prepare()里,路由完全不关心。


总结一句话

把"业务怎么算"(领域逻辑)从 HTTP 路由里拿出来,放到一个独立的、不依赖任何传输协议的服务层里。这样不管是 HTTP 请求还是后台任务,都可以直接调用同一份业务代码,不用再绕一圈发 HTTP 请求给自己。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 21:40:36

TB67H480FNG与PIC18F87K22在电机控制中的黄金组合

1. 为什么选择TB67H480FNG与PIC18F87K22组合在工业控制和自动化项目中,电机驱动与微控制器的选型直接影响系统性能和可靠性。TB67H480FNG是东芝新一代高集成度直流电机驱动器,而PIC18F87K22则是Microchip旗下经典的8位增强型微控制器。这两者的组合在中小…

作者头像 李华
网站建设 2026/7/9 21:40:09

AI辅助C++游戏开发:零基础用DeepSeek与SDL2打造经典贪吃蛇

1. 项目概述:当AI编程助手遇上经典游戏开发 最近在社区里看到不少朋友对游戏开发感兴趣,但又觉得C门槛太高,从零开始学图形库、学算法、学设计模式,没等做出个像样的东西热情就耗尽了。我自己也经历过这个阶段,直到我开…

作者头像 李华
网站建设 2026/7/9 21:38:13

137.工业级模块化 PLC!ST 状态机分拣系统|模拟量调速 + 故障联锁 + 超时保护

摘要 可编程逻辑控制器(PLC)是现代工业自动化的核心设备,广泛应用于制造业、能源、交通等领域。本文从工程实践出发,系统讲解PLC的核心原理、编程方法及调试技巧。通过一个完整的物料分拣控制系统案例,展示从需求分析到代码实现的全流程。文章采用IEC 61131-3标准中的结构…

作者头像 李华
网站建设 2026/7/9 21:37:10

嵌入式开发实战:STM32F4 系列 EEPROM 与 Flash 存储方案选型指南

STM32F4 存储方案深度解析:EEPROM与Flash的工程实践指南在嵌入式系统开发中,数据存储方案的选择往往决定了产品的可靠性和长期稳定性。当您面对STM32F4系列微控制器时,如何在内部Flash和EEPROM之间做出合理选择?这个问题看似简单&…

作者头像 李华