-
了解软件架构模式概念
-
学习常见的架构模式
-
熟悉架构模式应用方法
万物皆是接口,万物都是增删改查
概念
架构的定义
架构是构成一个系统的基础组织结构,包括系统的组件构成,组件间的相互关系、系统和其所在环境的关系、以及知道架构设计和演进的相关准则。
架构的特性
-
架构定义系统的结构
-
架构定义系统的行为和交互
-
架构只关注影响系统的重要元素
-
架构遵循一种架构风格
-
架构需要平衡干系人的需求
-
架构受所处环境的约束,反过来也影响它的环境
-
架构不仅仅要实现最后产出,还必须保证是合理和正确的。
-
-
跟我重复:上下文、上下文、上下文。
架构风格
架构风格定义:以结构组织模式定义的一类系统族。一种软件体系结构风格刻画了一个类似结构和语义的系统家族。内容包括:
-
构件
-
交互关系
-
约束条件
遵循架构风格的好处:
-
建立共识
-
架构遵循某种风格,使相关人员更加理解架构,降低沟通成本。
-
遵循架构风格,可以加快架构选型。
-
-
架构沉淀
-
基于架构风格,可以快速的明确架构中需要复用/沉淀的构件,形成架构框架。
-
-
促进复用
-
架构规划中遵循适合的架构风格,可以提升效率,规避风险。
-
设计中遵循架构风格,提升开发效率。
-
架构风格 | 风格分类 |
---|---|
数据流风格 | 批处理 |
管道/过滤器 | |
调用/返回风格 | 主程序/子程序 |
面对对象风格 | |
层次风格 | |
独立构建风格 | 进程通讯 |
事件系统 | |
虚拟机风格 | 解释器 |
基于规则的系统 | |
仓库风格 | 数据库系统 |
超文本系统 | |
黑板系统 |
框架是软件,架构不是软件
框架的作用:
-
通过框架实现了架构的沉淀落地
-
框架的质量决定了系统整体架构的质量
-
对框架的验证,验证了整体系统架构
架构模式
-
模式定义:模式(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架构差异
微服务粒度问题
六大架构模式评估
架构设计原则和过程
明确架构大方向 - 架构模式的选择
架构评估 - 运行态架构质量
架构评估 - 开发态架构质量
架构的平衡性评估 - 架构质量间的关系
混搭的架构模式
架构模式与技术专业委员会的关系