架构-基础概念
系统与子系统
系统是有一群有关联的个体组成,遵循一定的规则运作,完成个别元件不能完成的工作的群体。关键点是关联,规则(规定了个体分工和协作的方式),能力(区别于个体的能力)。
子系统是更大系统的一部分。(比如:微信是一个系统,聊天,支付,朋友圈是其子系统)
比如:朋友圈包含动态,评论,点赞等子系统,评论又包含防刷子系统,审核子系统,发布子系统,存储子系统。
模块与组件
两者都是系统的组成部分,只是从不同的维度进行的对系统进行拆分。
模块是从逻辑的角度进行拆分得到的单元,主要目的是实现职责分离。
组件则从物理的角度进行拆分得到的单元,主要目的是单元复用。
以一个网站系统为例,模块部分包括登陆注册模块,个人信息模块,个人成绩模块;组件部分则包括Nginx, Web服务器,Mysql。
框架与架构
框架是组件规范,是提供基础功能的产品,关注的是规范。(比如:SpringMVC就是一种开发框架,提供了包括:注解,Spring Security, Spring JPA在内的基础功能)
架构关注的则是结构,可以理解成系统的顶层结构。而结构这个概念从不同的维度有不同的理解。上面所有的概念都可以用架构的概念进行描述,网站系统以下几种说法都是正确的.
- 从模块的角度讲,架构如下:
- 从组件的角度讲,架构如下:
- 从开发的角度讲,架构如下: