bin^2

bin^2

discord server
twitter

架构方法论——为什么架构只需要三层

#article/done/published
#架构
#三层分形架构

学习架构的时候,都会要到各种各样的分层架构,如传统三层、四层、DDD、六边形、MVC、MVP、MVVM 等等,而且还在不断有新的分层方法。

真的需要不断的学习这么多的分层方法么?有没有可以学习一个万能的分层方法呢?

架构方法论 —— 三层分形架构尝试使用一个方法论来生成适用的分层方法。

为什么要分层?#

分层的本质是聚焦。传统三层聚焦业务逻辑,MVC 聚焦交互流程控制,ORM 聚焦数据映射,DDD 聚焦领域服务。

如何分层?#

首先一个软件系统的核心是业务逻辑,聚焦业务逻辑就有了第一个层,业务逻辑层。
业务逻辑并不能直接为用户使用,想要应用业务逻辑就需要一个交互层(或者叫展现层、接入层)。

业务逻辑也能不能凭空构建,需要其他的应用来支撑,所以还需要一个基础层(或者叫数据层)。

还需要其他的层次吗?

目前来看不需要了。
这里的基础层,同时也是其他系统的应用。也就是一个系统的应用是其他系统的支撑,一个系统的核心依赖其他系统的应用。因为系统与系统、系统与用户间的关系无非是支撑和依赖,所以这已经覆盖了所有的情况。

什么是三层分形架构?#

那么为什么 DDD 的分层会有四层,网络会有 7 层,等等超过三层的设计呢?

三层以上的设计其实是在三层的基础上,将其中一层再聚焦一个不同核心重新划分出的三层。

比如核心层再聚焦实体和聚合,那么应用领域实体就需要应用服务层,支持领域实体就需要仓库、领域事件总线等支撑。

在交互层中,聚焦交互流程控制,核心层便是控制器,应用层是视图,支撑是模型。聚焦界面的不同展示,核心层便是展示器,应用是视图,支撑是模型。

三层架构是指聚焦某一核心,根据支撑和应用关系,划分出三层的方法。
三层分形架构,是指应用三层架构方法,每个分层中再次使用三层架构的递归处理过程,因为是三层架构的重复应用,形似分形,所以命名为三层分形架构

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。