- 
了解软件架构模式概念 
- 
学习常见的架构模式 
- 
熟悉架构模式应用方法 

万物皆是接口,万物都是增删改查
概念
架构的定义
架构是构成一个系统的基础组织结构,包括系统的组件构成,组件间的相互关系、系统和其所在环境的关系、以及知道架构设计和演进的相关准则。
架构的特性
- 
架构定义系统的结构 
- 
架构定义系统的行为和交互 
- 
架构只关注影响系统的重要元素 
- 
架构遵循一种架构风格 
- 
架构需要平衡干系人的需求 
- 
架构受所处环境的约束,反过来也影响它的环境 
- 
架构不仅仅要实现最后产出,还必须保证是合理和正确的。 
- 
- 
跟我重复:上下文、上下文、上下文。 
架构风格
架构风格定义:以结构组织模式定义的一类系统族。一种软件体系结构风格刻画了一个类似结构和语义的系统家族。内容包括:
- 
构件 
- 
交互关系 
- 
约束条件 
遵循架构风格的好处:
- 
建立共识 - 
架构遵循某种风格,使相关人员更加理解架构,降低沟通成本。 
- 
遵循架构风格,可以加快架构选型。 
 
- 
- 
架构沉淀 - 
基于架构风格,可以快速的明确架构中需要复用/沉淀的构件,形成架构框架。 
 
- 
- 
促进复用 - 
架构规划中遵循适合的架构风格,可以提升效率,规避风险。 
- 
设计中遵循架构风格,提升开发效率。 
 
- 
| 架构风格 | 风格分类 | 
|---|---|
| 数据流风格 | 批处理 | 
| 管道/过滤器 | |
| 调用/返回风格 | 主程序/子程序 | 
| 面对对象风格 | |
| 层次风格 | |
| 独立构建风格 | 进程通讯 | 
| 事件系统 | |
| 虚拟机风格 | 解释器 | 
| 基于规则的系统 | |
| 仓库风格 | 数据库系统 | 
| 超文本系统 | |
| 黑板系统 | 
框架是软件,架构不是软件

框架的作用:
- 
通过框架实现了架构的沉淀落地 
- 
框架的质量决定了系统整体架构的质量 
- 
对框架的验证,验证了整体系统架构 
架构模式
- 
模式定义:模式(Pattern)是表示上下文(Context)、系统目(System of Forces)、 解决方案(Solution)三个方面关系的一个规则,每个模式描述了一个在某种 Context 下个跌里风发生的问题,以及该问题解决方案的核心所在,模式即是一个事物(thing)又是一个过程(process),不仅描述该事物本身,而且提出了通过怎样的过程来产生该事物。 
- 
架构模式定义: - 
架构模式是对以往系统的架构抽象而形成的模板 
- 
是对某个具体环境下问题的结构性解决方案 
- 
内容包括: - 
提供一些事先定义好的子系统,指定它们的责任 
- 
给出把它们组织在一起的法则和指南. 
 
- 
 
- 
- 
架构风格与架构模式的异同: - 
概念上,通常可以互用 
- 
架构风格反映了系统遵循的某种模式,是一类系统的抽象总结描述 
- 
架构模式,是架构风格具体化的模板,可以包含—种或多种架构风格,是为了实现某个目标,而形成的解决方案模板。 
 
- 
模式的构成

模式的层次分类
架构模式(ArchitectureStyles):
- 
是系统的高层次策略,涉及到大尺度的组件以及整体性质 
- 
可作为具体软件架构的模板,是开发一个软件系统时的基本设计决策 
- 
规定了系统范围结构特性,架构模式的好坏影响到总体布局和框架性结构 
- 
架构模式如:分层架构、SOA架构、事件驱动架构等 
设计模式(Design Patterns):
- 
是中等尺度的结构策略。实现了一些大尺度组件的行为和它们之间的关系 
- 
模式的好坏不会影响到系统的总体布局和总体框架 
- 
设计模式定义出子系统或组件的微观结构 
- 
设计模式如:代理模式、观察者模式等23个基本设计模式 
代码模式(Idioms):
- 
是特定的范例和与特定语言有关的编程技巧 
- 
处理特定设计问题的实现,关注设计和实现方面 
- 
模式的好坏会影响中等尺度组件的内部、外部的结构或行为的底层细节 
- 
如:比如,类名,变量名,函数名的命名规则;编码规范;异常处理的规则等 
FEAF(联邦企业架构框架)

常见的架构模式
架构的崩坍

向前兼容、向后兼容
六种常见的架构模式
- 
分层架构 
- 
SOA架构 
- 
微服务架构 
- 
事件驱动架构 
- 
内存空间架构 
- 
微内核架构 

分层架构


分层架构反模式 - 层开放
 
分层架构模式评估

SOA架构

SOA架构的基本特征

SOA参考模型

SOA的优缺点

SOA架构模式评估

微服务
微服务架构来源分析

微服务架构特征1

微服务架构特征2

微服务架构 - 拓扑结构1

微服务架构 - 拓扑结构2

微服务与SOA架构差异

微服务粒度问题

六大架构模式评估
架构设计原则和过程

明确架构大方向 - 架构模式的选择

架构评估 - 运行态架构质量

架构评估 - 开发态架构质量

架构的平衡性评估 - 架构质量间的关系

混搭的架构模式

架构模式与技术专业委员会的关系

 
										