【引言】
“架构”一词由来已久,最早用于建筑学,原本指的是建筑物设计和建造的艺术。 在软件工程领域,软件架构也不是一个新名词,所谓“架构”,就是指软件系统的整体结构,包括软件的各个子?橐约澳?橹涔叵档奶逑。软件架构和软件设计在概念上是统一的,二者没有区别,它们的产出都包括系统架构图、概要设计、详细设计等等,这些都体现出了架构师对于业务功能的理解和抽象,以及相对应的软件系统的设计。类似建筑设计师设计使用的图纸一样,架构图以及相关的文档实际上包含了软件系统的所有底层设计细节,这些细节信息共同支撑了顶层的设计实现,底层与顶层的设计都体现出软件系统的标准,发展方向和指导思想。 现实中我们经常会遇到为了加快发布速度而被匆忙搭建起来的系统。这类系统通常没有经过良好的设计便匆匆开工。初期,团队的开发效率都很高,然而随着产品的迭代,项目规模的扩大,不可避免的出现代码随处拷贝,复杂性扩散,代码质量下降,业务?橄嗷ヱ詈系惹榭,工程师的开发效率呈直线下降的趋势,最终造成产品维护困难,甚至不可维护,投入成本成指数增长但是产品质量却在下降。问题所在就是大家对架构设计和代码质量的可维护性存在着长期、持续的忽视。 那么,实现一个好的系统架构的目标是什么呢?架构师们所做的各种决策,最终的目标就是为了能够达到,用最少的人力成本来满足构建和维护该系统的需求。判断一个软件系统架构优劣的标准很简单,就用它满足客户需求所需要的成本来判别。如果该系统成本很低,并且在整个后续的迭代过程中,包括需求的变更和维护等都维持一个相对低的成本,那么就可以说这种软件系统架构是一个优秀的软件架构设计。
