架构之美第七章-软件架构师的角色
软件开发项目需要一些人在软件构建时扮演架构师的角色,就像构建或修复建筑时传统的建筑师的角色一样。但是,对于软件系统来说,从来就弄不清楚哪些决定属于架构师
的职责范围,哪些决定要留给实现者。定义架构师在软件项目中做什么,比建筑师的类似定义更困难, 原因有3 个因素: 缺少传统、产品无形性和系统复杂性。( 参见
Grinter[1999],其中描述了软件架构师如何在一个大型软件开发组织中实现她的职责。)
具体来说:
? 建筑师可以回顾几千年的历史,看看过去的建筑师都做过些什么。他们可以参观并研究那些矗立了几百年的建筑,有时甚至有上千年历史的建筑,而它们仍在使用。在软件业,我们只有几十年的历史,并且我们的设计常常是不公开的。此外,建筑师拥有并利用标准来描述他们制作的图纸和规格说明,这让现在的建筑师能够从记录下来的架构历史中受益。
? 建筑是有形的产品,在建筑师制作的规划和工人修造的建筑之间存在着明显的区别。