从一层到多层架构的学习笔记
为什么要分层
- 支持技术复杂性与业务复杂性分离
- 分层需要明确每层的职责,单一职责,做到关注点分离
- 需要通过分层来隔离不同的关注点,以此应对不同需求的变化
- 在项目中约定每层的规范,有利于代码的规范,更好的阅读性
- 在代码实现中,可以减少耦合,避免一些重复,避免一些臃肿
学习三层的过程
一层架构,二层架构
1.最开始写代码,直接在Controller
上写业务逻辑,以及数据交互的代码,这样写在控制器上存在大量的重复代码,十分的凌乱,阅读性非常差。
2.前人走后,后来的人接手,一脸蒙逼,眼花缭乱,一个方法,几百行代码是基本操作,里面包含了大量的业务逻辑,访问DB,有的还用了视图,存储过程,不知道你们遇到过没有,我是遇到过的。
3.只要经历过维护这种代码的,基本上会发现。有大量的重复,可以抽离出来,许多代码都可以共用,于是抽象出公共的方法,大量的业务逻辑代码在Controller上不好维护,
把业务逻辑也抽离出来,单独一层,把所有的业务逻辑都写到业务逻辑层,出现了二层架构。
三层架构
1.在二层架构中,会发现,业务逻辑层中还是有大量的数据访问的代码,根据单一职责,业务逻辑层应该更多关注的是,业务逻辑,而且,数据访问的代码也存在许多重复的现象,于是抽出业务逻辑层中的数据访问代码到数据访问层
出现了三层架构。
2.一层到三层的出现,在我的认知里,就是为了减少重复,避免臃肿,分离后,每一层都有自己的职责,基于约定,代码的阅读性更好
3.任何软件工程遇到的问题都可以通过增加一个第二步实现需求来解决
这句话是真的经典!