系统分析与设计-Lesson-13-作业

| 分类 作业  | 标签 博客 

系统分析与设计 Lesson 13

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

软件架构相当于一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。软件架构就是把系统分解为一些部件,描述这些部件的职责及它们之间的协作行为。

框架是特定语言和技术的架构应用解决方案。框架是具体语言和技术相关的一种或多种架构组合的实现。

两者的主要区别在于架构与语言无关,适用于特定领域的普遍系统设计;而框架是与特定语言和技术相关,适用于某些场景的具体解决方案。框架是集成了技术代码和多种第三方解决方案的工具,能够帮助开发者聚焦于业务逻辑代码而不是具体的技术实现;架构是描述软件系统如何设计的重要策略,能够指导开发者进行系统的开发。简单来说,架构属于设计,框架属于实现。

两者的联系是软件架构中的组件或子系统可以使用框架进行实现,而某些框架本身的设计也需要组合利用其他架构的设计思想。

· 以你的项目为案例

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

architecture

给开发者带来的便利:

  • 每个层或包的职责是清晰的,模块化并可扩展的。系统分析的每个类会分明确的放置;
  • 提供了隐式的程序复用准则;
  • 每个层涉及的技术是明确的。这使得程序员可以通过快速培训上岗;
  • 通过依赖估计项目变化产生的工作量;
  • 开发次序和重要性是明确的。领域模型、基础模块(用户和基础数据的DTO和Service必须优先开发与测试),减少这些模块的错误,特别是领域模型设计失误,是项目成功的关键;
  • 并行开发支持。利用前后端分离,实现并行开发。

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

不同点:

VUE

在VUE中,有一个专门的状态管理库——Vuex,它的状态管理基本原理如下:

vuex

Vuex使用单一状态树,用一个对象就包含了全部的应用层级状态,也即每个应用将仅仅包含一个store实例(包含多个State)。这个状态变化过程大概就是用户的交互操作action经过Dispatch后,View调用store.commit提交对应的请求到store中对应的mutation函数,然后store再改变生成新的state,最后Vue组件检测到数据变化自动渲染。

Flux

Flux的状态管理也与此类似(Vuex其实有参考Flux进行设计),不过Flux中没有对应Vuex中的Mutations状态,如下过程:

flux

用户的操作同样会触发 Actions,然后被提交到一个集中的 Dispatcher 当中。当 Actions 被派发之后,Stores 将会随之更新自己并且通知 Views 进行修改。

相同点:

两者均是对MVC框架的一种改进,其中都有设计解决原来在表示层中可能存在的一个 Model 可以被多个 Views 读取,并且可以被多个 Controllers 进行更新的问题,避免在大型应用当中,单个 Model 会导致多个 Views 去通知 Controllers,并可能触发更多的 Model 更新的复杂结果。


上一篇     下一篇