02:架构分层以及其必要性

2020-02-06  本文已影响0人  浥羽醉悠扬

在系统从0到1的阶段,为了让系统快速上线,我们通常是不考虑分层的。但是随着业务越来越复杂,大量的代码纠缠在一起,会出现逻辑不清、各模块项目依赖、代码扩展性差、牵一发而动全身等问题。

什么是分层架构
软件架构分层在软件工程中是一种常见的设计方式,它是将整体系统拆分成N个层次, 每个层次都有独立的职责,多喝层次协提供提供完整的功能。
我们在刚刚成为程序员的时候,会被“教育”说系统的设计要是MVC架构(Model-View-Controller)架构。它将整体的系统分成了模型,视图和控制器三个层次,也就是将用户视图和业务处理隔离开,并且通过控制器连接起来,很好的实现了表现和逻辑的解耦,是一种标准的软件分层架构。

image

另外一种常见的分层方式是将整体架构分为表现层、逻辑层和数据访问层:

这是在架构上最简单的一种分层方式。其实,我们在不经意间已经按照三层架构来做系统分层设计了。比如在构建项目的时候,我们通常会建立web、Service和Dao,他们分别对应了表现层、逻辑层还有数据访问层。 image 工作中经常用到tcp/ip协议,它把网络简化成了四层,即链路层、网络层、传输层和应用层。每一层各司其职又互相帮助,网络层负责端到端的寻址和建立连接,传输层负责端到端的数据传输等,同时相邻两层还会有数据的交互。这样可以隔离关注点,让不同的层专注做不同的事情。 image

分层有什么好处

如何来做系统分层
当业务逻辑简单时,层次之间的边界清晰,开发新的功能时也知道那些代码要往哪儿写,但是当业务逻辑变得越来越复杂时,边界会变得越来越模糊

分层架构的不足
最主要的一个缺陷就是增加了代码的复杂度。另外一个可能的缺陷时,如果把每个层次独立部署,层次间通过网络来交互,那么多层的架构在性能上会有损耗。这也是为什么服务化架构要比单体架构略差的原因,也是所谓的“多一跳”的问题。

任何方案架构都是有优势有缺陷的,相对于分层架构带来的好处来说,这些都是可以接受的,或者可以通过其他的方案解决。

上一篇 下一篇

猜你喜欢

热点阅读