书籍简介概述
书名:从零开始学架构——照着做,你也能成为架构师
作者:李运华
版次:2018年9月第一版
第一部分 概念和基础
第一章 架构基础
1.1 “架构”到底指什么
在讲架构之前,先说一些和架构有关系又似是而非的概念,主要有:系统、子系统、模块、组件。
框架和架构。
1.1.1 系统与子系统
- 系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别原件不能单独完成的工作的群体。这是维基百科对系统的定义,通过分析可以得出三个关键点:
1)关联。系统是由一群有关联的个体组成的,没有关联的个体堆在一起不叫系统。
2)规则。系统内的个体合作需要遵循规则,而不是个体能力的和。
3)能力。系统能力和个体能力有本质的差别,个体能力之和不等于系统能力,而是因为规则的协作产生了新的能力。 - 子系统定义和系统定义一样,只是从不同角度看待而已。
1.1.2 模块与组件
- 模块
软件模块是一套一致且互相有紧密关联的软件组织,它包含程序和数据结构两部分。现代软件往往利用模块作为合成的单位。
模块的接口表达了由该模块提供的功能和调用它时所需要的元素。
模块可能是被分开编写的单位,这使得它们可再利用,在允许开发人员同时协作、编写及研究不同的模块。
- 组件
软件组件定义为自包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易的被用于组装应用程序。
如果只通过定义来看,很难区分出他们之间的却别。因为他们都是系统的组成部分,从不角度拆分而已。从逻辑角度来拆分的到的单元就是模块,从物理角度拆分,得到的就是组件。划分模块的主要作用是职责分离,划分组件的主要作用是单元复用。
即:逻辑->模块,物理->组件;职责->模块,单元复用->组件。
1.1.3 框架与架构
框架和架构是比较相似的概念,且两者有较强的关联关系。
维基百科对框架的定义如下:
软件框架通常是指为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
提取关键部分,可以得出:
1)框架是组件规范。例如mvc就是一种常见的开发规范。
2)框架提供基础功能的产品。例如Spring MVC是MVC的开发框架。
架构的定义是:
Software architecture refers to the fundamental structures of a software system, the discipline of creating such structures, and the documentation of these structures.
翻译之后就是:软件架构是指软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。
网友评论