系统分析与设计-HW8(v2)

    备注:检查作业的时候发现旧的博客页出了问题,内容显示的不正确,就重新写了一个博客,内容是直接搬过来的,和原来的一样。

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

  • 区别:
        软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为。当软件工程具一定规模时,软件开发不完全是以数据结构+算法的形式存在,而是基于技术选择和用户需求等众多因素将软件“分而治之”,架构师的主要任务是将软件分割成不同的模块,并定义模块之间的接口。
        框架是特定语言和技术的架构应用解决方案。例如 Java Spring web framework,它包含了 Java 开发 web 应用的各种业务场景的具体解决方案。其主要特征包含三点: 
            框架是具体语言和技术相关的 
            框架是一种或多种架构的组合的实现 
            框架是集成了代码和多种第三方解决方案的工具,主要聚焦业务逻辑代码,而不是技术实现
  • 联系:
         学习者、开发者需要在在架构的指引下,集合一些案例代码,进行对框架的学习和开发。
         框架官方代码因为代码简洁的需要破坏架构。解决方案,看实际应用代码结构,并在应用中按软件架构准则调整。
        框架是一种或多种架构的组合的实现,而架构决策往往会体现在框架之中,框架技术和架构技术的出现,都是为了解决软件系统日益复杂所带来的困难而分而治之的结果。

二、以你的项目为案例

  • 绘制三层架构模型图,细致到分区
    三层架构模型图如下:
                                系统分析与设计-HW8(v2)
  • 结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利
    答:体现了“高内聚,低耦合”的思想,优点主要有以下几点:
            ①开发人员可以只关注整个结构中的其中某一层;
            ②可以很容易的用新的实现来替换原有层次的实现;
            ③可以降低层与层之间的依赖;
            ④有利于标准化;
            ⑤利于各层逻辑的复用。

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

不同点:

  • Flux 是一种架构思想,专门解决软件的结构问题。它跟MVC 架构是同一类东西,但是更加简单和清晰。Flux将一个应用分成view(视图层),action(动作),dispatcher(派发器),store(存储)四个部分。

  • Vue.js 则是一款 JavaScript 前端框架,旨在更好地组织与简化Web开发。Vue所关注的核心是MVC模式中的视图层,同时,它也能方便地获取数据更新,并通过组件内部特定的方法实现视图与模型的交互。    

相同点:

  • 两者都提议将多个“修改”封装在一个“操作”中,应用通过提交“操作”来改变应用状态,让状态的变化保持一致性、更容易debug。
  • Flux和Vuex都是通过store来存储状态。