01|架构是什么
架构的历史背景
第一次软件危机的根源在于软件的“逻辑”变得非常复杂,而第二次软件危机主要体现在软件的“扩展”变得非常复杂。结构化程序设计虽然能够解决(也许用“缓解”更合适)软件逻辑的复杂性,但是对于业务变化带来的软件扩展却无能为力,软件领域迫切希望找到新的银弹来解决软件危机,在这种背景下,面向对象的思想开始流行起来。
架构组成
系统 && 子系统
系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。
- 关联
没关联的个体堆在一起不能成为系统
- 规则
系统内个体按照指定的规则运作,不是各自为政
- 能力
系统能力不是个体能力之和,而是产生了新的功能
子系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。多半会是更大系统中的一部分
模块 && 组件
从逻辑的角度拆分系统,得到的单元是模块,划分模块的主要目的是职责分离
从物理的角度拆分系统,得到的单元是组件,划分组件的主要目的是单元复用
比如说一个会员信息管理网站,可以分为“会员信息模块”、“会员管理模块”;也可从物理角度出发分为“Nginx”、“web服务器”
框架 && 架构
框架关注的是规范,需要明确系统包含哪些个体、需要明确个体运作和协调的规则
架构关注的是结构
浙公网安备 33010602011771号