软件架构与架构师 软件架构与架构师 architecture architecture 架构一词是舶来品,是architecture的中 架构一词是舶来品,是architecture的中 文翻译, 其英文的本意是来源于建筑行业 文翻译, 其英文的本意是来源于建筑行业 的建筑艺术、建筑(风格)和结构,引入 的建筑艺术、建筑(风格)和结构,引入 到软件领域里面来以后,并没有一个统一 到软件领域里面来以后,并没有一个统一 的定义。有的人将架构定义为:功能+设计 的定义。有的人将架构定义为:功能+设计 +构造手段,我们可以通俗的理解为:总体 +构造手段,我们可以通俗的理解为:总体 设计和总体结构。 设计和总体结构。 软件结构 软件结构 买过房子的人都知道5层以下的楼房一般是 买过房子的人都知道5层以下的楼房一般是 砖混结构,而高层和小高层的楼房都是框 砖混结构,而高层和小高层的楼房都是框 架结构,楼层越高对结构要求越高。 架结构,楼层越高对结构要求越高。 软件也是一样,系统越庞大,生命周期越 软件也是一样,系统越庞大,生命周期越 长,结构的重要性就越明显。 长,结构的重要性就越明显。 1 软件架构目的 软件架构目的 随着人们对软件工程的深刻理解,将架构进行充分的强调 随着人们对软件工程的深刻理解,将架构进行充分的强调 是很自然的,正如人们越来越强调系统的需求分析,从而 是很自然的,正如人们越来越强调系统的需求分析,从而 有了领域工程师和领域专家的概念一样。其实强调软件架 有了领域工程师和领域专家的概念一样。其实强调软件架 构的最主要的目的有3个: 构的最主要的目的有3个: 重用:人们希望系统能够重用以前的代码和设计,从而提高开发 重用:人们希望系统能够重用以前的代码和设计,从而提高开发 效率; 效率; 扩展:人们希望在系统能够保持结构的稳定的前提下很容易地扩 扩展:人们希望在系统能够保持结构的稳定的前提下很容易地扩 充功能和性能,希望能够“以静制动“; 充功能和性能,希望能够“以静制动“; 简洁:常言道,简洁就是美,好的架构一定易于理解,易于学 简洁:常言道,简洁就是美,好的架构一定易于理解,易于学 习,易于维护,人们希望能够通过一个简洁的架构来把握系统; 习,易于维护,人们希望能够通过一个简洁的架构来把握系统; 什么是软件架构 什么是软件架构 正如我们可以很简单地用砖混结构和框架结构来概括一幢 正如我们可以很简单地用砖混结构和框架结构来概括一幢 大楼的结构,专家们也定义了一些术语来定义软件的架构 大楼的结构,专家们也定义了一些术语来定义软件的架构 风格,如层次结构、B/S结构等。 风格,如层次结构、B/S结构等。 软件架构设计是软件设计的一部分,是其中的总体设计。 软件架构设计是软件设计的一部分,是其中的总体设计。 软件的架构设计有一定的创造性,但它毕竟是一个工程活 软件的架构设计有一定的创造性,但它毕竟是一个工程活 动,架构的设计是有章可循的,有一定的规律性的,是可 动,架构的设计是有章可循的,有一定的规律性的,是可 以重复的,有其稳定的模式。当然,在系统一开始很难可 以重复的,有其稳定的模式。当然,在系统一开始很难可 以建立一个完善的稳定的架构。迭代是软件开发过程中必 以建立一个完善的稳定的架构。迭代是软件开发过程中必 然的一个过程,这是人的思维活动的一个必然阶段。 然的一个过程,这是人的思维活动的一个必然阶段。 什么是架构师 什么是架构师 软件架构师实际上就是软件的总体设计 软件架构师实际上就是软件的总体设计 师。首席设计师就是总设计师,打个通俗 师。首席设计师就是总设计师,打个通俗 的比方:邓小平是中国改革开放的总设计 的比方:邓小平是中国改革开放的总设计 师,我们用现在的说法可以讲,邓小平是 师,我们用现在的说法可以讲,邓小平是 中国改革开放的首席架构师。 中国改革开放的首席架构师。 架构师的形成一定是在实践中积累起来