系统分析与设计-lesson13

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

    软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
    软件架构是一个系统的草图。软件体系结构是构建计算机软件实践的基础。

    软件框架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它,但要给出精确的定义很困难。特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征。
    软件框架是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。组件的外部可见属性是指其他组件对该组件所做的假设。
    从和目的、主题、材料和结构的联系上来说,软件框架可以和建筑物的架构相比拟。一个软件框架师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。软件框架师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。
    是一般而言,软件系统的框架(ArchitECture)有两个要素:
    它是一个软件系统从整体到部分的最高层次的划分。
    一个系统通常是由元件组成的,而这些元件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信息。
    详细地说,就是要包括架构元件(Architecture Component)、联结器(Connector)、任务流(TASk-flow)。所谓架构元素,也就是组成系统的核心”砖瓦”,而联结器则描述这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些元件和联结器完成某一项需求。
    ·建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。
    在建造一个系统之前会有很多的重要决定需要事先作出,而一旦系统开始进行详细设计甚至建造,这些决定就很难更改甚至无法更改。显然,这样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。

  2. 以你的项目为案例
    绘制三层架构模型图,细致到分区
    系统分析与设计-lesson13_第1张图片
    结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利
    1.可以根据细致的系统分区来分工编程任务,易于分工合作
    2.各系统逻辑分离,耦合度低,易于系统的扩展和分离
    3.各层分离易于抽象和复用

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

MVC 中,一个 Model 可以被多个 Views 读取或被多个 Controllers 进行更新。在大型应用中,一个 Model 可能使多个 Views 去通知 Controllers,并可能触发更多的 Model 更新,这样结果就会变得非常复杂。Flux 通过强制单向数据流来解决这个额问题。Flux 使 Views 查询 Stores(而不是 Models),用户交互触发的 Actions 被提交到一个 Dispatcher 中。当 Actions 被派发后,Stores 将会随之更新自己并且通知 Views 进行修改。这些 Store 当中的修改会进一步促使 Views 查询新的数据。即在相对独立的组件中,action -> state -> view 的单向数据流能得到保证。

应用:Flux 可能不适用于视图和领域模型合理映射的简单情况,而适用于需要描述多个视图并且不能直接映射到领域模型,或是视图可能需要来自于多个模型和不同种类的聚合数据的系统。

VUE 状态管理:

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

应用级的状态由store集中管理
修改状态的唯一方式是commit同步的mutation
异步逻辑放在action里

与 flux 对比,最大的区别是Vuex把action细分成了action和mutation,分别应对异步场景和同步场景,由store自身充当dispatcher(负责注册/分发action/(mutation)。即如果把 action 和 mutation 看作一层(Flux里的action),二者结构完全一致

你可能感兴趣的:(系统分析与设计-lesson13)