HomeworkLesson13

1.描述软件架构与框架之间的区别与联系

软件架构

  • 定义:软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为。
  • 特点
    • 软件结构是业界长期最佳实践的总结。
    • 软件架构是对系统的一种理解,与具体语言无关。

应用程序框架

  • 定义:框架是特定语言和技术的架构应用解决方案。例如 Java Spring web framework,它包含了 Java 开发 web 应用的各种业务场景的具体解决方案。
  • 特点
    • 框架是具体语言和技术相关的。
    • 框架是一种或多种架构的组合的实现。
    • 框架是集成了你的代码和多种第三方解决方案的工具,让你聚焦 业务逻辑代码 而 不是技术实现。

2.以你的项目为案例

  • 绘制三层架构模型图,细致到分区
  • 结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利

三层模型图如下图所示
order_arch

  • 对于负责表示层的程序员,他只需关注MVC模型,处理 HTTP Request,然后调用业务服务,产生Response,而不需关注其他两层的编程元素
  • 对于负责业务层的程序员,他只需提供满足各个业务的服务模块,以满足restfulAPI规范的接口
  • 对于负责持久化层的程序员,他只需关注数据库机制,提供ORM支持返回数据对象供业务层调用

3.研究 VUE 与 Flux 状态管理的异同

对于Flux,可以参考官网的图

flux

对于VUE,提供状态管理机制的主要是vuex,这里可以看官网给出的图

vuex

下面是对于flux和vuex异同的说明

  • flux : 一个 Model 可以被多个 Views 读取或被多个 Controllers 进行更新。在大型应用中,一个 Model 可能使多个 Views 去通知 Controllers,并可能触发更多的 Model 更新,这样结果就会变得非常复杂。Flux 通过强制单向数据流来解决这个额问题。Flux 使 Views 查询 Stores(而不是 Models),用户交互触发的 Actions 被提交到一个 Dispatcher 中。当 Actions 被派发后,Stores 将会随之更新自己并且通知 Views 进行修改。这些 Store 当中的修改会进一步促使 Views 查询新的数据。即在相对独立的组件中,action -> state -> view 的单向数据流能得到保证。
  • vuex : Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
    • 应用级的状态由store集中管理
    • 修改状态的唯一方式是commit同步的mutation
    • 异步逻辑放在action里
  • 总结:两者相比,vuex只有一个store(即vuex对象),而flux少了vuex通过action和mutation把异步与同步区别开来,vuex由store自身充当dispatcher(即view触发的动作都由vuex来注册/分发action和mutation)。