系统分析作业8
一、描述软件架构与框架之间的区别与联系
软件架构是关于软件系统组织重要决策的集合,它描述了系统组成的结构元素及其接口的选择,以及它们在这些元素之间的协作中指定的行为。
软件架构从一个比较宏观的、抽象的角度去描述软件系统。
而应用程序框架是特定语言和技术的架构应用解决方案。如Vuejs包含了使用Javascript开发web应用的各种业务场景的具体解决方案。
也就是说,应用程序框架是从一个比较具体的角度去表示一个软件系统。
软件架构和框架之间的区别和联系有:
- 框架是具体语言和技术相关的
- 框架是一种或多种架构的组合的实现
- 框架是集成了具体代码和多种第三方解决方案的工具。更多的是聚焦于业务逻辑代码。
- 框架是架构架构的具体实现,架构指导我们对框架的理解。
二、以你的项目为案例
1)绘制三层架构模型图,细致到分区
2)结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利
- 使用三层架构可以降低整个软件系统的耦合性。让不同层的开发者可以专注自己的业务而无需参与其他层业务的开发。也便于错误定位。提高了开发和后期维护的效率。
- 三层架构能够让开发者从一开始就对开发的系统和自身的定位有一个比较清晰的认识。
三、研究 VUE 与 Flux 状态管理的异同
- 同:
- Vue的状态管理主要是通过Vuex来完成的。其实Vuex与Flux都是一个设计思想的具体实现。即命令和查询职责分离(CQRS)思想——更新和引用的数据流动时单向的。避免当一个Model被多个视图组件引用时,某个视图组件修改Model引起的混乱的波纹扩散式更新。Vuex与Flux都遵循了这种原则,使用严格的规则来规范数据在系统中的流动。
- 异:
- Vuex与Flux状态管理的不同主要体现在对数据流的具体规范。
- Flux的状态管理图如下:
- 可以看到Flux应用的View通过Action更改了状态通过Dispatcher通知状态集中营Store对相应的状态作出对应的更改,这种更改随即反映到使用了相关状态的View视图中。
- Vuex的状态管理如下:
- Vuex的状态变更分为两种方式:同步更改和异步更改。同步更改通过提交commit来实现(Mutations中声明的方法);异步更改通过Action通知Store。但Action最后也是通过提交commit来实现发送通知的。Store收到相应的状态更新之后,也是立刻反映到相关的View视图中。
- 总的来说,Vue的状态管理工具Vuex其实是一个特化的Flux,主要是为了配合Vue本身的响应式机制。