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

  • 软件框架:面向领域(如ERP、计算领域等)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供了一些定义良好的可变点以保证灵活性和可扩展性。也就是说软件框架是领域分析结果的软件化,是领域内最终应用的模板
  • 软件架构:是系统的草图,是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计,是一个系统的草图,描述的对象是直接构成系统的抽象组件。各个组件之间的连接明确细致的描述组件之间的通讯。
  • 软件架构与框架之间的区别与联系
  1. 框架是软件,而架构不是软件。
  2. 软件框架特定语言和技术的架构应用解决方案。例如 Java Spring web framework,它包含了 Java 开发 web 应用的各种业务场景的具体解决方案。
  3. 软件架构不是软件,而是关于软件如何设计的重要决策。软件架构决策涉及到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件框架之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中
  4. 框架是一种或多种架构的组合实现,软件架构是比软件框架高一个抽象等级的概念,软件架构是引导如何设计软件框架的重要决策

2. 以你的项目为案例

2.1 绘制三层架构框架模型图,细致到分区

三层模型由三部分构成:表示层、业务层及持久化层

软件包架构不匹配怎么办 软件框架和架构_软件包架构不匹配怎么办

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

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

定义:Flux是一种前端状态管理架构思想,专门解决软件的结构问题。基于Flux的设计思想,出现了一批前端状态管理框架。
不同点:
1. Flux数据流的顺序是:
View发起Action -> Action传递到Dispatcher -> Dispatcher 将通知Store -> Store 的状态通知改变View进行改变
2. Vuex数据流的顺序是:
View调用store.commit提交对应的请求到Store中对应的mutation函数 -> store改变(vue检测到数据变化自动渲染)
3. 对比Flux, Vuex新增state角色,代表每个时间点store对应的值,对状态的管理更加明确,把Action细分为Action和mutation,分别对应异步场景和同步场景,并且由于Vuex的自动重新渲染的特性,无需订阅重新渲染函数。
相同点:
Flue是由facebook创建的状态集管理框架,Vuex基于Flux进行了改进,是专门为vue提供的状态管理工具,两者的大致思想一致。