news 2026/7/6 6:54:30

后端到底是什么架构?——从 MVC、三层、DDD 到洋葱/六边形的一次工程级对照

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
后端到底是什么架构?——从 MVC、三层、DDD 到洋葱/六边形的一次工程级对照

写后端写了一段时间后,很多人都会产生一个困惑:

👉 到底什么是“后端架构”?
👉 MVC 是不是后端架构?
👉 三层、DDD、洋葱、六边形到底是什么关系?

名词越来越多,但项目结构却越来越乱。

这篇文章,我尝试用工程视角,把这些常见“后端架构叫法”和“真实工程分层边界”一次性对齐。

一、先给结论:后端不是 MVP / MVVM

在后端领域,几乎不使用 MVP / MVVM

因为:

  • 后端没有 UI
  • 没有界面状态
  • 不存在视图绑定

👉 MVP / MVVM 本质是UI 架构,解决的是界面复杂度问题。

后端真正要解决的是:

  • 业务复杂度
  • 系统可演进性
  • 模块边界
  • 依赖方向
  • 基础设施隔离

所以,后端真正的主流架构,本质是:

👉分层架构 + 依赖控制 + 领域建模

二、后端真正稳定的“四层结构”

不管你听到的是 MVC、三层、DDD、洋葱、六边形,
几乎所有成熟后端系统,都可以抽象成下面这四层:

┌──────────────────────────┐ │ Interface / API 层 │ 接口与协议适配 ├──────────────────────────┤ │ Application 层 │ 业务流程编排 ├──────────────────────────┤ │ Domain 层 │ 业务核心模型 ├──────────────────────────┤ │ Infrastructure 层 │ 基础设施实现 └──────────────────────────┘

这是工程级后端结构的“底座”

三、每一层到底负责什么?

1️⃣ Interface / API 层(表现层、适配层)

典型形式:

  • Controller
  • Web / RPC / MQ 接口

职责只有一件事:

👉适配外部世界

包括:

  • 接 HTTP / RPC / MQ
  • 参数校验
  • DTO / VO 转换
  • 返回统一响应

不该做的事:

❌ 不写业务规则
❌ 不写 SQL
❌ 不做复杂事务
❌ 不做流程编排

这是很多项目最容易“写脏”的一层。

2️⃣ Application 层(应用层 / Service 层)

这是后端系统的调度中枢

它关心的是:

👉系统如何运转

典型职责:

  • 业务流程编排
  • 跨聚合操作
  • 事务边界
  • 权限 / 幂等 / 一致性控制
  • 调用多个 Domain / Repository / 外部系统

但它不应该沉淀核心业务规则

Application 层更像:

👉 “用例调度器 / 流程引擎”


3️⃣ Domain 层(领域层 / 核心层)

这是后端系统最重要的一层

它关心的是:

👉系统是什么

包含:

  • 领域实体(Entity)
  • 值对象(VO)
  • 聚合根(Aggregate)
  • 业务不变量
  • 领域服务(Domain Service)

特点是:

  • 不依赖数据库
  • 不依赖 Spring
  • 不关心 HTTP
  • 可纯 Java 单测

👉 这里放的是:业务真理,而不是技术细节。

4️⃣ Infrastructure 层(基础设施层)

这是“系统如何落地”的地方:

  • 数据库访问
  • Redis
  • MQ
  • 第三方系统
  • ORM / DAO
  • 各种 Client

典型形式:

  • Repository 实现
  • Mapper / DAO
  • 外部系统适配

服务于 Domain 和 Application
而不是反过来控制业务。

四、常见架构名词对照表

名词它在强调什么工程本质
MVCWeb 请求分层Interface + Model(弱化View)
三层架构工程落地结构Controller / Service / DAO
DDD业务建模方法Domain 层变厚
洋葱架构依赖方向依赖只能向内
六边形架构边界与适配多入口、多出口
Clean Architecture完整依赖规则同构分层模型

👉 这些不是互斥架构,
👉 而是同一套结构的不同观察角度

五、真正重要的是“边界”,不是名字

很多后端项目失败,不是选错架构名词,
而是边界失控

一个健康的后端系统,至少要守住这些边界

Interface 层

  • 只做协议适配
  • 不写业务、不写 SQL

Application 层

  • 负责流程与事务
  • 不承载核心业务模型

Domain 层

  • 承载业务规则
  • 不依赖技术实现

Infrastructure 层

  • 只做实现
  • 不控制业务

👉 架构是否成立,取决于边界是否干净。

六、MVC 在后端的真实形态

在后端:

  • C = Controller(接口层)
  • M = Domain + Repository
  • V = JSON / VO / Response

也就是说:

👉 后端的 View,已经退化成“数据结构”。

所以行业里仍说 MVC,
但工程上,真正使用的是分层 + 领域模型

七、一个可直接落地的工程结构模板

interfaces/ http/controller http/dto http/vo http/assembler application/ service command query domain/ model service repository (接口) infrastructure/ persistence client config

依赖方向:

interfaces → application → domain infrastructure → domain

👉 Domain 不依赖任何外层。

八、总结一句话

👉 后端不是 UI 架构问题,而是业务复杂度与系统演进问题
👉 后端架构的核心,不是 MVC 这个名字,而是:

  • 清晰分层
  • 明确边界
  • 正确依赖方向
  • 稳定业务内核

不管你叫它三层、DDD、洋葱还是六边形,
最终都要回到这四层结构。

九、阶段性结论

后端不用 MVVM / MVP

后端主流是分层 + 领域模型

架构优劣取决于边界,不取决于名字

Domain 层决定系统上限

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

AI绘画边缘计算:麦橘超然树莓派部署可行性验证

AI绘画边缘计算:麦橘超然树莓派部署可行性验证 1. 为什么要在树莓派上跑AI绘画? 你有没有试过在手机上打开一个AI绘图App,等了半分钟才出图?或者在笔记本上点下“生成”,风扇立刻开始咆哮,键盘发烫到不敢…

作者头像 李华
网站建设 2026/7/1 13:35:01

uni-app多端适配:HBuilderX微信小程序实战详解

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。我以一名长期深耕 uni-app 微信小程序实战开发的前端架构师视角,彻底摒弃模板化表达、空洞术语堆砌和机械式分节,转而构建一篇 逻辑严密、经验扎实、可即学即用的技术长文 。全文已去除…

作者头像 李华
网站建设 2026/6/29 21:58:02

系统软件找不到cmctlchs.dll文件 怎么解决? 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/6/29 4:34:30

虚拟偶像直播互动:粉丝情绪实时反馈系统构建

虚拟偶像直播互动:粉丝情绪实时反馈系统构建 1. 为什么虚拟偶像需要“听懂”粉丝的情绪? 你有没有在直播间里,一边刷着“哈哈哈”,一边被AI主播突然接住情绪、笑着回一句“看来大家今天特别开心呀~”?这种…

作者头像 李华
网站建设 2026/7/3 16:17:50

多轮对话稳定性测试:gpt-oss-20b-WEBUI真实体验

多轮对话稳定性测试:gpt-oss-20b-WEBUI真实体验 1. 为什么关注多轮对话稳定性? 你有没有遇到过这样的情况: 第一次提问,模型回答得条理清晰、逻辑严密; 第二次追问细节,它开始回避重点; 第三次…

作者头像 李华
网站建设 2026/7/1 15:38:16

LCD12864入门必看:超详细版基础原理讲解

以下是对您提供的博文《LCD12864入门必看:超详细版基础原理讲解》的 深度润色与专业重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、有“人味”——像一位在产线调过十年屏的嵌入式老兵在跟你掏心窝子&…

作者头像 李华