基础架构-架构理论简析
01 | 导读
1、深究“架构”到底指什么,需要了解以下几个问题
1)系统与子系统
2)模块与组件
3)框架与架构
02 | 系统与子系统
1、定义
1)系统:系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”、“整体”或“联盟”。
2)子系统:子系统是由一群有关联的个体组成的系统,多半会是更大系统的一部分。
3)注:子系统的定义和系统定义是一样的,只是观察的角度有差异,一个系统可能是另外一个更大系统的子系统。
2、系统的关键内容
1)关联:系统是由一群有关联的个体组成的,没有关联的个体堆在一起不能成为一个系统。例如汽车就是一个系统,有发动机、车轮等组成。
2)规则:系统内的个体需要按照指定的规则运作,而不是单个个体各自为政。规则规定了系统内个体分工和协作的方式。例如汽车发动机产生动力。
3)能力:系统能力与个体能力有本质的差别,系统能力不是个体能力之和,而是产生了新的能力。例如汽车能够载重前行,发动机则不行。
03 | 模块与组件
1、按角度拆分
1)模块和组件都是系统的组成部分,只是从不同的角度拆分系统而已。
2)模块:从逻辑角度来拆分系统后,得到的单元就是“模块”。
3)组件:从物理角度来拆分系统后,得到的单元就是“组件”。
2、按目的划分
1)划分模块的主要目的是职责分离;划分组件的主要目的是单元复用。
2)组件的英文component,可以译为“零件”,它是一个物理的概念,并且具备“独立且可替换”的特点。
3、一个例子,学生信息管理系统
1)从逻辑角度拆分:“登陆注册模块”、“个人信息模块”。
2)从物理角度拆分:Nginx、Web服务器、MySQL。
04 | 框架与架构
1、定义
1)软件框架(Software framework):指为了实现某个业界标准或者完成特定基本任务的软件组件规范,也指为了实现某个软件组织规范时,提供规范所要求之基础功能的软件产品。
2)软件架构:指软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。
3)区别:框架关注的是“规范”,架构关注的是“结构”。
4)框架:Framework;架构:Architecture。
2、软件框架的关键部分
1)框架是组件规范。
2)框架提供基础功能的产品。
05 | 小结
1、架构重新定义:软件架构指软件系统的顶层结构。
2、 系统与子系统:系统是由一系列有关联,按特定规则组成的个体,并且产生新的能力,而系统与子系统则是观察的交角度不同。
3、 模块与组件:模块是从逻辑角度去看待,而组件是从物理角度去看待。
4、框架与架构:框架是规范也是约束,可以理解为封闭性的话题,定义好,让别人如何去使用,而架构是一种结构,是一种开放性的话题,如何去设计组织架构,如何让架构更具有拓展性,减少沟通错误成本。
06 | 思维导图
1、基础架构-架构理论思维导图
参考文献:
[1] 李运华. 从0开始学架构[M]. 极客时间, 2018.