程序员必读之软件架构
上QQ阅读APP看书,第一时间看更新

第2章 架构的种类

单是IT行业就有很多不同种类的架构和架构师。下面列出了人们在被问及该问题时给出的最普遍回答(排名不分先后):

❑ 基础设施;

❑ 安全;

❑ 技术;

❑ 解决方案;

❑ 网络;

❑ 数据;

❑ 硬件;

❑ 企业;

❑ 应用程序;

❑ 系统;

❑ 集成;

❑ IT;

❑ 数据库;

❑ 信息;

❑ 流程;

❑ 商务;

❑ 软件。


有些遗憾的是,这个列表中的有些词,特别是其定义相互依赖的,比其他词容易定义。比如,“解决方案架构”到底是什么意思?对一些组织来说,“解决方案架构师”就是“软件架构师”,而有些组织则有一个特定的专注于整体“方案”设计(但不包括实施细节的讨论)的角色。类似地,“技术架构”通常指软件、硬件,或者两者兼有。

有趣的是,当我请人们列出他们知道的IT架构种类时,“软件架构”往往是最后被提及的。这或许反映了这个词带给人们的困惑。

它们的共同点是什么

那么,所有这些词有什么共同点呢?除了都以“架构”或“架构师”结尾之外,所有架构类型都具有结构和愿景。

以“基础设施架构”为例,想象你要在两个办公室之间建立网络连接,而这两个办公室远隔千里。一种做法是找一卷最长的网线,然后从一个办公室直接连接到另一个办公室。假设你有足够的线缆,这可能行得通,但现实中为了达到这个目标,你要考虑很多环境约束和非功能特性。这就是架构的过程以及设定实现目标愿景的重要之处。

采用一条很长的线缆是一种方法,但由于现实世界的约束,这个方法并不可行。因为这个原因,网络往往要复杂得多,需要一组协同工作的组件来满足目标。那么从基础设施的角度出发,我们谈论结构时你期望看到的是这一领域内的通用组件,比如路由器、防火墙、包整形器、交换机等。

不管你是构建软件系统、网络还是数据库,任何成功的方案都需要你理解问题,并设定一个愿景可以和每个参与构建最终产品的人沟通。不论何种领域的架构,其实主要就是结构和愿景。