为什么要做代码分层架构?

软件程序通常有两个层面的需求:

  • 功能性需求,简单来说,就是一个程序能为用户做些什么,比如,文件上传、查询数据等;

  • 非功能性需求,这个是指除功能性需求以外的其他必要需求,比如,性能、安全性、容错与恢复、本地化、国际化等。

事实上,非功能性需求所构建起来的正是我们所熟知的软件架构。什么是软件架构?简单来说,就是软件的基本结构,包括三要素:代码、代码之间的关系和两者各自的属性。

我们都知道,软件架构非常重要,为什么重要呢?如果把软件比作一座高楼,那么软件架构就是那个钢筋混凝土的框架,代码就是那个框架里的砖石,正是因为有了那个框架,才能让每一个代码都能很好地运行起来。

其中,最为经典的软件架构就是分层架构,也就是将软件系统进行分层,现在几乎已经成为每个程序员最熟悉的思考模式之一。不过,分层架构越是流行,我们的设计越容易僵化。这背后到底有哪些值得我们深思的地方呢?

今天就从架构角度来聊聊为什么代码要做分层、主要用于解决什么问题,以及存在优势和劣势有哪些。

一、代码分层架构是什么?

要想彻底理解代码分层架构,就得从软件部署分层架构说起。首先我们来看一下常见的互联网软件部署分层架构,如下图所示: 为什么要做代码分层架构?_第1张图片 由图可以看到,软件部署分层架构主要包括以下四个核心部分。

  • 客户端层(Client):调用方,比如浏览器或 App。

  • 应用服务层的网页服务器(Web Server):实现程序的运行逻辑,并从下层获取数据,返回给上层的客户端层。

  • 应用服务层的缓存(Cache):加速访问存储的数据。

  • 数据层(DB)ÿ

你可能感兴趣的:(趣学设计模式,架构,设计模式,java)