什么是架构?
第66篇
极客时间《从0开始学架构》课程笔记。
要理配慎解什么是架构,需要先搞明白系统、子系统、组件、模块的定义,再区分出框架,然后才能真的理解什么是架构(设计)。
系统无处不在。
地球是系统,太阳系也是系统;手机是系统,运行在手机里的APP是系统;电脑是系统,运行在电脑里的软件程序也是系统;浏览器是系统,打开某个网站也是系统。
似乎明白系统是什么,又似乎无法准确定义它。
维基百科上定义如下:
关键词: 个体关联、运作规则、群体工作
关联代表多个个体,不是一个。规则代表有指定要求和顺序,不是随意组合。群体工作则突出能力的变化,不是个体的能力累加,而是形成新能力:『系统能力』。
子系统定义与系统一样,只是突出表达是一个大系统的组成部分,大系统由多个子系统组成。
系统=子系统A+子系统B……+子系统N
在平时工作中,这两个概念一直没区分,仅仅是哪个用着顺手就用哪个,基本认为是一个相同的概念了。
但实际上,两个概念是有区别的,但不是正确与错误的那种区别,而是描述角度的差异而已。
1、模块和组件都是系统的组成部分,只是从不同的角度拆分系统而已。
2、从逻辑的角度来拆分系统后,得到的单元就是“模块”;划分模块的主要目的是职责分离;模块偏业务。
3、从物理的角度来拆分系统后,得到的单元就是“组件”;划分组件的主要目的是单元复用;组件偏技术。
4、模块是对系统进行横向拆分,为了便于分工协作;而组件是纵向切分,站在成本角度,目的是为了复用,具备独立可替换特点。
1、框架是一套规范或者规则(思想),或者提供基础功能的产品。
2、架构是结构与组件的抽象描述,是系统整体的顶层设计,用来处理软件高层次结构的设计和实施。
3、框架关注培旦敬『规范』,架构关注『结构』。
4、同一个框架可以用在不同系统的软件架构中。
5、同一个系统的架构可以通过不同角度进行描述,如『4+1视图』
1、个体=子系统或模块或组件;系统 = 一群关联个体根据规则运行
2、架构需要明确:个体包含哪些『个体』、个体运作和协作的规则
3、顶层结构突出『顶层』,区分系统和子系统,关注迟竖整体而不是个体
软件框架
软件架构
软件架构 "4+1" 视图模型
运用RUP 4+1视图方法进行软件架构设计
2023-02-01 广告