架构到底是指什么?
- 架构设计相关的特性:
- 架构设计的思维和程序设计的思维差异很大,架构设计的关键思维是判断和取舍,程序设计的关键思维是逻辑和实现。
- 架构设计没有体系化的培训和训练机制。
- 程序员对架构设计的理解存在很多误区。
- 模块和组件都是系统的组成部分,只是从不同的角度拆分系统而已。
- 从业务逻辑的角度来拆分系统后,得到的单元就是“模块”;
- 从物理部署的角度来拆分系统后,得到的单元就是“组件”。
- 划分模块的主要目的是职责分离;
- 划分组件的主要目的是单元复用。
- 框架关注的是“规范”,架构关注的是“结构”。框架是⼀整套开发规范,架构是某⼀套开发规范下的具体落地方案,包括各个模块之间的组合关系以及它们协同起来完成功能的运作规则。
- 软件架构指软件系统的顶层(Rank)结构,它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)。
- 无论是架构设计还是画架构图,都应该采取“自顶向下,逐步细化”的方式。