背景:
在平常的工作过程中,有很多人会以经验的方式去知道具体的工作。遇到无经验可借鉴的时候就束手无策了。往往这些时候就是体现一个人学习能力的时候,所以,就需要一种借鉴其他人经验的方式。而架构模式就是前人为我们总结和模式化的架构设计实践中经验。
2. 内容范围
在软件界有很多种模式的概念,并在之后会推出系列的架构模式文章。所以需要大概的说明一下系列文章的内容范围,以区别其他知识领域并方便的指导学习过程。
概述:
1. 架构设计到底干了什么?
架构的基本需求主要是在满足功能属性的前提下,关注软件质量属性,架构设计则是为了满足架构需求(软件质量)寻求适当的”战术“;
2. 软件架构设计的意义?
-
项目关系人之间的交流平台
在软件过程中,软件系统中会有各种各样的关系人进入。软件系统的多种关系人在不同的时候分别关注系统不同的特性。我们可以从软件架构的"4+1"视图模型中看不同人的需求。
架构设计 -
早期设计决策
在精益中有个规则,叫做推迟决策。相应的敏捷中也需要支持尽快决策。在软件开发的开发初期可以实现MVP,对其进行各方面的评估与验证。因为在软件过程中不确定因素很多,刚开始很难预测未来的变化,一开始保留较大的弹性。软件需求分三种:功能需求,质量需求和设计约束。在开始进行架构设计时就可以考虑这三种需求来完成相应的决策。 -
在较高层面上体现软件的复用
软件质量中有一条软件可复用性,不要认为软件工程中的规则、原则、指导等都只能停留在它所固定的层次上。软件的可复用性并不只代表代码的复用性,它代表了软件开发层次中的各个层次。在组件化开发中软件可复用性可以体现在组件的服用。在架构设计层面的可复用性,就可以说架构模式了。 -
架构对开发的指导与规范意义不可忽视。
架构的指导意义体现在所有的人员都有一个共同的目标。在团队中一致的目标能让团队更高效的完成任务。并且可以形成软件中的统一语言,方便团队中的沟通。
说明:
1. 以怎样的方式描述架构模式?
根据软件实施经验、并综合架构模式的定义进行对软件架构进行描述。也会说明具体的架构模式的适用范围,以及使用过程中的注意事项。
2. 软件架构的生命周期?
从演进式架构还没有出现时,总有一种模糊的感觉:架构不是一蹴而就的。在遗留系统怎样更新到新架构、现在正在运行的软件产品怎样持续的进行改进、新系统设计时怎样考虑它的可扩展行?这些都是对软件架构的要求。所以,一直在思考,但是《演进式架构》出现后才真正的理解。
体系结构的生命周期模型3. 架构模式分类
GoF为我们总结了23种设计模式。我们在这里说明10种架构模式。具体类型为:
- 分层架构模式
- 事件驱动架构模式
- 微内核架构模式
- 微服务架构模式
- 云架构模式
- 命令查询指责分离模式
- 仓库系统及知识库
- 控制环路模式
- 管道过滤器模式
- 无服务器架构