美文网首页架构师
(1/5)软件架构入门-分层架构

(1/5)软件架构入门-分层架构

作者: 刘林三 | 来源:发表于2016-09-12 14:18 被阅读114次

软件架构(software architecture)就是软件的基本结构。

合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。

一、分层架构

分层架构(layered architecture)是最常见的软件架构,也是事实上的标准架构。如果你不知道要用什么架构,那就用它。

这种架构将软件分成若干个水平层,每一层都有清晰的角色和分工,不需要知道其他层的细节。层与层之间通过接口通信。

虽然没有明确约定,软件一定要分成多少层,但是四层的结构最常见。

表现层(presentation):用户界面,负责视觉和用户互动

业务层(business):实现业务逻辑

持久层(persistence):提供数据,SQL 语句就放在这一层

数据库(database) :保存数据

有的软件在逻辑层和持久层之间,加了一个服务层(service),提供不同业务逻辑需要的一些通用接口。

用户的请求将依次通过这四层的处理,不能跳过其中任何一层。

优点

结构简单,容易理解和开发

不同技能的程序员可以分工,负责不同的层,天然适合大多数软件公司的组织架构

每一层都可以独立测试,其他层的接口通过模拟解决

缺点

一旦环境变化,需要代码调整或增加功能时,通常比较麻烦和费时

部署比较麻烦,即使只修改一个小地方,往往需要整个软件重新部署,不容易做持续发布

软件升级时,可能需要整个服务暂停

扩展性差。用户请求大量增加时,必须依次扩展每一层,由于每一层内部是耦合的,扩展会很困难

我的看法:(仅代表个人观点)

1.适合大多数小项目框架,开发成本可控,可维护性合理。(java系有非常经典的struts2、spring mvc)

2.适合功能内聚,对外依赖较小的项目。

3.对非功能性需求(如性能、安全性)较高的项目需要有其他工具配合才能满足需求。

4.对于大项目来说,力不从心。需要更高维度的架构来解决。

上面是引用了阮老师的文章。稍后提供链接。

相关文章

  • (1/5)软件架构入门-分层架构

    软件架构(software architecture)就是软件的基本结构。 合适的架构是软件成功的最重要因素之一。...

  • [转]软件架构入门

    一、分层架构 分层架构(layered architecture)是最常见的软件架构,也是事实上的标准架构。如果你...

  • 五大常用软件架构分析方案(图文+优缺对比)

    一、分层架构 分层架构(layered architecture)是最常见的软件架构,也是事实上的标准架构。如果你...

  • 五大常用软件架构分析方案(图文+优缺对比)

    一、分层架构 分层架构(layered architecture)是最常见的软件架构,也是事实上的标准架构。如果你...

  • 1、微服务基本概念

    一、传统的可扩展性架构之分层架构与SOA架构 1、分层架构 (1)概念 分层架构是很常见的架构模式,它也叫 N 层...

  • 软件设计的三层架构

    1:三层架构是什么? 三层架构是一个分层式的软件体系架构设计理念。 把软件架构分为三层; 1:UI层 (user ...

  • 一文读懂分层架构

    认识分层架构 分层架构是运用最为广泛的架构模式,几乎每个软件系统都需要通过层(Layer)来隔离不同的关注点(Co...

  • 六边形架构设计

    分层架构是运用最为广泛的架构模式,把一个软件系统进行分层,是我们目前做工程项目的一个共识,我们最初学习的分层架构就...

  • 软件程序学习

    一、理论知识 1、HTTP协议 资料:阮一峰的HTTP协议入门 2、软件架构 资料:阮一峰的软件架构入门 3、MV...

  • 架构分层

    架构设计的目的是解决软件系统复杂度带来的问题。分层架构设计只不过是架构设计中的一种设计思想和方法论 认识分层架构 ...

网友评论

    本文标题:(1/5)软件架构入门-分层架构

    本文链接:https://www.haomeiwen.com/subject/keupettx.html