构架 入门
· 阅读需 5 分钟
什么是构架
构架是软件系统的形状。拿建筑物来举例子:
- 范式 paradigm 是砖块
- 设计原则是房间
- 组件是建筑
他们共同服务于一个特定的目的,就像医院治疗病人,学校教育学生一样。
我们为什么需要架构?
行为 vs. 结构
每一个软件系统提供两个不同的价值给利益相关者:行为与结构。软件开发者必须确保这两项价值都要高
==由于其工作的需要,软件架构师更多地聚焦于系统的结构而不是特性和功能。==
终极目标——==减少每加一个新特性所需要耗费的人力成本==
架构服务于软件系统的整个生命周期,使其易于理解,开发,测试,部署和操作。 其目标是最小化每个业务用例的人力资源成本。
O’Reilly 出版的《软件架构》一书很好地介绍了这样五种基本的构架。
1.分层架构
分层架构是被广泛采用,也是被开发者所熟知的一种架构。因此,它也是应用层面上事实上的标准。如果你不知道应该使用什么架构,用分层架构就是不错的选择。
示例
- TCP/IP模式:应用层 > 运输层 > 网际层 > 网络接口层
- Facebook TAO网络层 > 缓存层(follower + leader) > 数据库层
优缺点:
- 优点
- 易于使用
- 职责划分
- 可测试性
- 缺点
- 庞大而僵化
- 想要对架构进行调整、扩展或者更新就必须要改变所有层,十分棘手
- 庞大而僵化
2.事件驱动架构
任何一个状态的改变都会向系统发出一个事件。系统组件之间的通信都是经由事件完成的。