架构的定义

架构本身的定义和概念,每个人都听过架构,架构本身不同人有不同理解,我们常见的组件化,模块化,系统,子系统,框架等,与架构本身的的关系到底是什么。正确理解架构是基础…

系统与子系统

系统与子系统的定义

系统泛指一群有关联的个体组成,根据某种规则运作,完成了个别元件不能完成的工作的群体。

子系统也是一群有关系的紫铜组成,多半会是更大系统的一部分。

提取核心词

  • 关联:一群关联的个体
  • 规则:个体按照规则运作
  • 能力:系统能力超越个体能力
  • 分层:自顶向下的逐层分解

架构与框架

框架是为了实现某个业界标准的软件组件规范,也是指为了实现某个软件组件规范,提供规范所要求的基础功能的软件产品。常见spring,django,spring boot等

软件架构指软件的基础结构,创造这些基础结构的准则,以及对结构的描述。常见的mvp架构,微服务架构。

我们常见的mvc也是架构。mvc规定了model层,view层,controller层具体的职责规范,按照这个规范实现的mvc框架,是与语言无关的。

模块与组件

模块是一套一致而相互有密切关联的软件组织,分别包含了程序和数据结构部分,现代软件开发利用了模块作为合作的单位,模块分开编写,允许人员同时写作,编写和研究。常见的微信中,支付模块,朋友圈模块,聊天模块等,按照逻辑拆分。

组件则是自包含,可编程,可重用,与语言无关系的软件单元,很容易被复用于应用程序,模块,子系统等。例如常见的nginx,web服务器,mysql,这些组件就可以复用于各个子系统,模块等,按照物理拆分。

那么模块的主要目的是职责分离,而组件则是单元复用

架构定义和剖析

4R架构 - Rank + Role + Relation + Rule

软件架构指的是软件系统的顶层结构(Rank),定义了系统由哪些角色组成,角色(Role)之间的关系(Relation)和运作规则(Rule)

  • 顶层结构Rank:架构是分层的
  • 组成角色Role:系统包含哪些角色,包括但不限于子系统,模块,组件等
  • 角色关系Relation:角色之间的关系
  • 运作规则Rule:角色如何协作完成系统功能

4R架构应用

学习一个架构,可以套这个架构关系图,先看顶层结构,再找角色,角色之间的关系,最后确认运作规则,了解清楚才能进入源码的学习。

Author: ACE0220
Link: https://ace0220.github.io/architecture/architecture-defination/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.