架构导论
什么是架构?
架构是软件系统的形状。就好像是一个物理世界的建筑的全景:
- 范式是砖块。
- 设计原则是房间。
- 组件是一幢建筑。
它们共同服务于特定的目的,例如医院是为治愈病人而设,学校是为教育学生而设。
我们为什么需要架构?
行为与结构
每个软件系统为利益相关者提供两种不同的价值:行为和结构。软件开发人员负责确保这两种价值都保持高水平。
==软件架构师由于其工作描述,更加关注系统的结构,而不是其特性和功能。==
终极目标 - ==每个功能节省人 力资源成本==
架构为软件系统的整个生命周期提供服务,使其易于理解、开发、测试、部署和操作。目标是最小化每个业务用例的人力资源成本。
O’Reilly的书《软件架构模式》由Mark Richards撰写,是对这五种基本架构的简单而有效的介绍。
1. 分层架构
分层架构是最常见的架构,开发人员广泛熟知,因此是应用程序的事实标准。如果你不知道使用什么架构,请使用它。

示例
- TCP / IP模型:应用层 > 传输层 > 网络层 > 网络接入层
- Facebook TAO:网页层 > 缓存层(跟随者 + 领导者) > 数据库层
优缺点
- 优点
- 易于使用
- 职责分离
- 可测试性
- 缺点
- 单体
- 难以调整、扩展或更新。你必须对所有层进行更改。
- 单体