2026/5/21 13:23:09
网站建设
项目流程
上海正规网站建设怎么样,保世基官方网站建设,wordpress v,软件是如何开发的写后端写了一段时间后#xff0c;很多人都会产生一个困惑#xff1a;#x1f449; 到底什么是“后端架构”#xff1f;
#x1f449; MVC 是不是后端架构#xff1f;
#x1f449; 三层、DDD、洋葱、六边形到底是什么关系#xff1f;名词越来越多#xff0c;但项目结构…写后端写了一段时间后很多人都会产生一个困惑 到底什么是“后端架构” MVC 是不是后端架构 三层、DDD、洋葱、六边形到底是什么关系名词越来越多但项目结构却越来越乱。这篇文章我尝试用工程视角把这些常见“后端架构叫法”和“真实工程分层边界”一次性对齐。一、先给结论后端不是 MVP / MVVM在后端领域几乎不使用 MVP / MVVM。因为后端没有 UI没有界面状态不存在视图绑定 MVP / MVVM 本质是UI 架构解决的是界面复杂度问题。后端真正要解决的是业务复杂度系统可演进性模块边界依赖方向基础设施隔离所以后端真正的主流架构本质是分层架构 依赖控制 领域建模二、后端真正稳定的“四层结构”不管你听到的是 MVC、三层、DDD、洋葱、六边形几乎所有成熟后端系统都可以抽象成下面这四层┌──────────────────────────┐ │ Interface / API 层 │ 接口与协议适配 ├──────────────────────────┤ │ Application 层 │ 业务流程编排 ├──────────────────────────┤ │ Domain 层 │ 业务核心模型 ├──────────────────────────┤ │ Infrastructure 层 │ 基础设施实现 └──────────────────────────┘这是工程级后端结构的“底座”。三、每一层到底负责什么1️⃣ Interface / API 层表现层、适配层典型形式ControllerWeb / 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 层基础设施层这是“系统如何落地”的地方数据库访问RedisMQ第三方系统ORM / DAO各种 Client典型形式Repository 实现Mapper / DAO外部系统适配它服务于 Domain 和 Application而不是反过来控制业务。四、常见架构名词对照表名词它在强调什么工程本质MVCWeb 请求分层Interface Model弱化View三层架构工程落地结构Controller / Service / DAODDD业务建模方法Domain 层变厚洋葱架构依赖方向依赖只能向内六边形架构边界与适配多入口、多出口Clean Architecture完整依赖规则同构分层模型 这些不是互斥架构 而是同一套结构的不同观察角度。五、真正重要的是“边界”不是名字很多后端项目失败不是选错架构名词而是边界失控。一个健康的后端系统至少要守住这些边界Interface 层只做协议适配不写业务、不写 SQLApplication 层负责流程与事务不承载核心业务模型Domain 层承载业务规则不依赖技术实现Infrastructure 层只做实现不控制业务 架构是否成立取决于边界是否干净。六、MVC 在后端的真实形态在后端C Controller接口层M Domain RepositoryV 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 层决定系统上限