news 2026/9/30 7:16:35

后端到底是什么架构?——从 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/9/27 3:04:47

Unsloth功能测评:支持主流LLM的真实表现

Unsloth功能测评:支持主流LLM的真实表现 在大模型微调领域,速度慢、显存高、部署难一直是开发者绕不开的三座大山。你是否也经历过:想在单卡上跑通一个LoRA微调实验,结果显存直接爆满;等了两小时训练完,发…

作者头像 李华
网站建设 2026/9/27 2:48:55

Z-Image-Turbo指令遵循性测试,复杂描述也能懂

Z-Image-Turbo指令遵循性测试,复杂描述也能懂 你有没有试过这样写提示词:“一位穿靛蓝扎染旗袍的江南女子站在乌镇石桥上,左手提青布油纸伞,右手轻扶桥栏,晨雾未散,水面倒影清晰,远处白墙黛瓦若…

作者头像 李华
网站建设 2026/9/26 7:28:03

USB3.2速度与Intel主板兼容性:深度剖析

以下是对您提供的技术博文进行 深度润色与结构优化后的版本 。整体风格更贴近一位资深嵌入式系统工程师/硬件架构师在技术社区中的真实分享:语言自然、逻辑层层递进、去AI痕迹明显,同时强化了“可操作性”和“工程现场感”,删减冗余术语堆砌…

作者头像 李华
网站建设 2026/9/27 15:41:42

UNet人脸融合镜像使用避坑指南,少走弯路快上手

UNet人脸融合镜像使用避坑指南,少走弯路快上手 1. 为什么需要这份避坑指南 你是不是也遇到过这些情况: 上传两张照片后点击“开始融合”,结果页面卡住不动,控制台报错却看不懂;融合出来的脸像被PS过度,皮…

作者头像 李华
网站建设 2026/9/30 3:58:15

Open-AutoGLM多设备管理技巧,批量控制更高效

Open-AutoGLM多设备管理技巧,批量控制更高效 在移动智能体开发实践中,单台设备调试只是起点。当需要验证跨机型兼容性、进行压力测试、或为团队提供统一测试环境时,同时管理多台安卓设备成为刚需。Open-AutoGLM 作为智谱开源的手机端AI Agen…

作者头像 李华
网站建设 2026/9/27 13:40:47

AI修图工作室降本增效方案:unet image批量处理部署案例

AI修图工作室降本增效方案:unet image批量处理部署案例 1. 为什么修图工作室需要这套方案? 你是不是也遇到过这些情况: 客户催着要精修图,但一张人像精修平均要20分钟,一天最多处理30张;美工离职后&…

作者头像 李华