# 前端架构(没有一种架构可满足未来的需求)
## 为什么需要软件架构
### 什么是软件架构
软件架构是指软件系统的高级结构,以及创建这种结构和系统的约束。每一个结构包含软件元素,元素之间的关系
以及元素和关系的属性。软件系统的架构是一种隐喻,类似于建筑的体系结构。
他作为系统和开发项目的蓝图,列出了团队必须执行的任务。
### 开发人员需要什么样的软件架构
- 系统间关系
- 系统内关系
- 应用内架构
- 规范和原则
## 架构的设计
### 收集架构需求(了解相关者的利益,寻找架构关注点,明确跨功能需求,罗列技术点)
### 架构模式
- 架构风格:分层,MVC,发布-订阅,管理过滤器
### 架构设计方法:4+1视图法(逻辑图,开发图,流程图,物理视图)TOGAF(业务架构,应用架构,数据架构,技术架构) &
ADM(架构愿景,业务架构,信息系统架构,技术架构,机会以及解决方案,迁移计划,实施治理,架构变更管理)
### 生成架构产出物
- 架构图
- 迭代计划
- 技术栈选型
- 实例代码
- 测试策略
- 部署方式
## 架构设计原则
- 不多也不少
- 演进模式
适应环境能够生存下来的物种不是最聪明的,也不是最强壮的,是那些对变化做出快速反应的人。
- 持续性
## 前端架构发展史
- 古典 table
- 动效
- Ajax
- 动态生成HTML
- 模板分离
- node
- MV*
## 前端架构设计:层次设计
- 系统级别 (前后端分离,微前端架构)
- 应用级别 (脚手架,模式库,组件库,设计系统)
- 模块级别 (组件化,模块化)
- 代码级别 (规范,原则质量,开发流程,代码质量以及改善)