系统分析与设计 - Homework8

架构理解

Posted by Summer on June 3, 2018

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

  • 软件架构
    • 软件架构是一种类似于草图的东西,它和语言和技术无关,是一种关于软件如何设计的策略。架构决定如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。

    • 架构具有架构模式,架构模式通常是特定领域常见的解决方案。通过了解特定领域的架构模式,我们能够更容易地去设计一款软件,使得它具有更加优秀的稳定性和可扩展性。

  • 软件框架
    • 软件框架是特定语言和应用的架构应用解决方案。它相当于一种半成品的软件,能够为我们构建解决方案提供良好的基础。
    • 软件框架是一种已经设计好的,方便我们使用的存在,而不需要我们为之考虑太多。
  • 软件架构和软件框架的联系 框架技术和架构技术的出现,都是为了解决系统日益复杂所带来的困难而采取的“分而治之”的思维的结果 - 先大局后局部,就出现了架构;先通用后专用,就出现了框架。架构是问题的抽象解决方案,关注大局而忽略细节;而框架是通用半成品,还必须根据具体需求进一步定制开发才能变成应用系统。

以你的项目为案例:

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

三层架构模型图如下: 三层架构

三层架构带来的便利:

  • 三层架构使得整个软件的层次很清晰,并且模块化分明。这样使得程序员们可以分别开发各自的模块而不会相互影响。
  • 这种低耦合性能够大大提高程序员的开发效率。
  • 其次,每个模块都是可扩展的并且重用性强。
  • 因为模块化明确,所以可以比较方便轻易地替换原有的模块。
  • 后期的维护成本比较低,出现问题也只需要修改相应模块,而不用卷土重来。

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

异:

  • Flux是一种前端状态管理架构思想,专门解决软件的结构问题。基于Flux的设计思想,出现了一批前端状态管理框架。
  • Vue的状态管理是通过Vuex来实现的,而Vuex是基于Flux设计思想的一个状态管理框架。
  • Flux分为四层,分别是view、action、dispatcher和store,而它的数据流顺序为: View发起Action -> Action传递到Dispatcher -> Dispatcher将通知Store -> Store的状态改变通知View进行改变
  • Vuex的核心为:
    • state:存放多个组件共享的状态(数据)
    • mutations:存放更改state里状态的方法,用于变更状态,是唯一一个更改状态的属性
    • getters:将state中某个状态进行过滤,然后获取新的状态,类似于vue中的computed
    • actions:用于调用事件动作,并传递给mutation
    • modules:主要用来拆分state vuex的数据流顺序为: View调用store.commit提交对应的请求到Store中对应的mutation函数 -> store改变(vue检测到数据变化自动渲染)

同:

  • 由于Vuex是基于Flux开发的,因此它们在思想上是相同的。
  • Flux和Vuex都是通过store来存储状态。