软件架构(architecture)究竟是什么?
不论从哪个角度分析软件系统,都不可能面面俱到。如果从架构学角度来分析,在一定程度上能够做到抓大放小,把握住重点,但是也不可避免地会错失某些重要的细节信息。
软件架构学关注的的一个重点是组织结构(structure)。不管是讨论组件(Component)、类(Class)、函数(Function)、模块(Module),还是层级(Layer)、服务(Service)以及微观与宏观的软件开发过程,软件的组织结构都是我们的主要关注点。但是真实世界中的许多软件项目并不完全按照我们的信念和愿望生长——它们就像超大型国企那样,层层嵌套,缠绕成一团乱麻 。有的时候真的很难相信,软件项目的组织结构性也能像物理建筑那样一目了然,层次清晰。
物理建筑,不管其地基是石头还是水泥,形状是高大还是宽阔,风格是气势恢宏还是小巧玲珑,其组织结构都一目了然。物理建筑的组织结构必须遵守“受重力”这一自然规律,同时还要符合建筑材料自身的物理特性。软件项目则没有定律可以遵循。另外,物理建筑是用砖头、水泥、木头、钢铁或者玻璃等标准材料建成的,而大型软件项目往往是由小的软件组件构成的,这些软件组件又是由更小的软件组件构成的,层层堆叠,无穷无尽。
本站只提供图书的试读版,同时欢迎更多的爱好读书的朋友来电子书下载网来分享更多好看的pdf电子书,免费下载您所需要的电子书籍。